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

   ## Summary
   
   PyPaimon already supports caller `snapshot_properties` in batch, stream and 
overwrite commits, but this forced the Python publication path. Rust could 
deserialize snapshot properties but did not write caller metadata during 
publication.
   
   - Add `TableCommit.with_snapshot_properties`, using the existing immutable 
committer configuration style. A configured clone retains the publication 
environment and retry configuration while owning the caller's property map.
   - Copy properties into the common snapshot construction path, covering 
append, empty checkpoints, overwrite and retries. Properties are not inherited 
from the previous snapshot, and empty maps are omitted.
   - Add an optional `snapshot_properties` argument to the batch and stream 
Python commit methods, and update their stubs. Each binding call creates its 
own configured committer so metadata cannot leak into later stream checkpoints.
   - Keep publication failure and prepared-file ownership behavior intact.
   
   The semantics follow Java `ManifestCommittable.properties`, 
`FileStoreCommitImpl.tryCommit` and Java's normalization of empty property maps 
to absent snapshot metadata. This only accelerates an existing PyPaimon 
capability.
   
   ## Verification
   
   - `cargo test -p paimon --lib table::table_commit::tests::`: 121 passed, 
including new properties isolation, overwrite recovery, CAS conflict and 
publication-response-loss cases.
   - Python binding `test_table_commit.py`: 58 passed, covering batch/overwrite 
metadata, stream checkpoint isolation and empty checkpoints.
   - Built the extension and ran related PyPaimon tests with Native 
plan/read/write/commit enabled: 117 passed; 68 Native plans, 56 reads, 54 
writes and 73 commits exercised.
   - `cargo +1.98.0 clippy -p paimon -p pypaimon_rust --all-targets -- -D 
warnings`, formatting and diff checks passed.
   - Independent core/API and Python adapter reviews completed with no 
remaining findings.
   
   Tests verify that retries preserve caller properties, recovered identities 
retain the originally published metadata, and a lost publication response 
preserves referenced data files.
   
   A companion Python PR removes the snapshot-properties fallback and adds REST 
coverage for Append, PK and Data Evolution, including static/dynamic empty 
overwrite semantics and fallback/error boundaries.
   


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