JingsongLi opened a new pull request, #9196:
URL: https://github.com/apache/paimon/pull/9196

   ## What changed
   
   - Make `ConflictDetection` an abstract base class with a common 
conflict-checking template.
   - Add dedicated conflict detection strategies for primary-key, Data 
Evolution, and append tables.
   - Delegate base data file scanning from `FileStoreCommitImpl` to the 
selected table strategy.
   - Move primary-key range checks and Data Evolution Row ID checks into their 
respective implementations.
   - Add behavioral tests for strategy selection, table-specific scanning, and 
conflict isolation.
   
   ## Why
   
   Conflict detection previously mixed scanning and validation rules for 
different table types in `FileStoreCommitImpl` and a single `ConflictDetection` 
implementation. Separating these strategies makes table-specific behavior 
explicit and allows each table type to evolve its scan and conflict rules 
independently.
   
   ## Impact
   
   The commit path now selects a conflict detection strategy from table 
capabilities. Common deletion-vector, bucket, partition-expiration, retry, and 
exception handling behavior remains in the base class.
   
   ## Validation
   
   - `mvn -pl paimon-core -Pfast-build -DwildcardSuites=none 
-Dtest=ConflictDetectionTest test`
   - `mvn -pl paimon-core -am -Pfast-build -DfailIfNoTests=false 
-DwildcardSuites=none 
-Dtest=FileStoreCommitTest,TableCommitTest#testCompactConflictWithUpgrade test`
   - `mvn -pl paimon-core -am -DskipTests compile`
   - `git diff --check`
   


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