JingsongLi opened a new pull request, #422: URL: https://github.com/apache/paimon-rust/pull/422
## Summary Align Rust `TableCommit` more closely with Python/Java `FileStoreCommit` commit behavior. This adds manifest rolling and minor compaction, overwrite retry caching, richer conflict checks, row-tracking parity for dedicated files, and column-aware global index update handling. ## Changes - Add manifest options and write-path support for rolling manifest files by target size, plus minor compaction of small existing manifest files. - Reuse overwrite base entries across retries when intervening snapshots are safe, while rebuilding on target-partition changes, non-APPEND commits, or whole-table overwrite. - Extend commit conflict handling with delete existence checks, row-id existence/range checks, and `check_from_snapshot` incremental row-id/column conflict checks. - Fill manifest `min_row_id`/`max_row_id` metadata when all entries carry row ids. - Align row-tracking assignment with Python/Java behavior for missing `file_source`, blob files, and vector dedicated files. - Make global index updates column-aware with default rejection and `DROP_PARTITION_INDEX` support, including `extra_field_ids`. - Keep overwrite changelog handling Java-aligned: overwrite commits ignore changelog-only input. ## Testing - [x] `cargo fmt --all` - [x] `cargo test -p paimon table::table_commit --no-fail-fast -- --nocapture` - [x] `cargo test -p paimon --lib --no-fail-fast` - [x] `git diff --check` ## Notes - `table_commit` coverage was expanded with Python-inspired regression tests for overwrite cache reuse/rebuild, manifest rolling/minor compaction, global index extra-field updates, and default-partition null overwrite 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]
