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]
