reswqa opened a new pull request, #1139:
URL: https://github.com/apache/paimon-rust/pull/1139

   ### Purpose
   
   Partial-update merges can incorrectly revive a deleted record when 
processing an update to another sequence group, an older update to the 
delete-controlling group, or subsequent retractions.
   
   For example, after a `DELETE` from a group configured in 
`partial-update.remove-record-on-sequence-group`, an `INSERT` affecting only 
another group must not make the record visible again.
   
   Deleted results were also materialized from the last raw retract instead of 
the accumulated merge state. This can lose field updates and aggregate results 
across merge boundaries, or retain incorrect row-kind metadata.
   
   This PR aligns these behaviors with Java's partial-update merge semantics.
   
   ### Brief change log
   
   - Preserve deletion state across subsequent retractions and unrelated or 
stale sequence-group updates.
   - Clear sequence-group deletion state only when a configured 
delete-controlling group accepts an INSERT or UPDATE_AFTER.
   - Materialize deleted records from merged fields and aggregate results, 
preserving the final RowKind and latest internal sequence number.
   - Correct the existing `last_non_null_value` regression: an older update may 
contribute to the aggregate state without reviving the deleted record.
   
   ### Tests
   
   - Add regression coverage for deletion and restoration, single-field and 
composite sequence groups, all commit-boundary combinations, projections, 
aggregate-state retention, and `ignore-delete`.
   - Add a unit test verifying the DELETE payload, final RowKind, and latest 
internal sequence number after a subsequent UPDATE_BEFORE.
   - `cargo test -p paimon --locked --offline`
   - Independently run equivalent cases against Java master (`5d019f5a6d`) 
using a temporary parity suite
   
   ### API and Format
   
   No public API or storage format changes.
   
   ### Documentation
   
   No documentation changes. This fixes existing partial-update behavior.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to