XiaoHongbo-Hope opened a new pull request, #9688:
URL: https://github.com/apache/paimon/pull/9688

   ### Purpose
   
   Fix a PyPaimon correctness issue in conflict detection during commit retries.
   
   A failed commit attempt caches the base manifest entries and normally merges 
only later delta entries. However, an OVERWRITE may replace the base manifest 
list while publishing an empty delta manifest list, as row-id reassignment 
does. Reusing the cached base then hides the replacement and can allow stale 
row-id update files to commit.
   
   Return None from the incremental scan when the retry interval contains an 
OVERWRITE, so the existing caller performs a full scan. This matches the Java 
conflict detection behavior.
   
   ### Tests
   
   Added a regression that forces a CAS failure, commits an OVERWRITE whose 
replacement is hidden from the delta scan, and verifies the retry detects the 
file deletion conflict.
   
   Before the fix, the regression committed with a stale conflict base and 
failed by showing different file identifiers from a fresh full scan. After the 
fix it passes.
   
   Validated:
   
   - overwrite_commit_conflict_test: 5 passed
   - file_store_commit_test, partition_predicate_test, and 
conflict_detection_test: 88 passed
   - flake8, py_compile, and git diff --check passed


-- 
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