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

   ## Why
   
   PyPaimon supports commit callbacks, but registering a callback forces REST 
commits to use the Python implementation even when Native commit is enabled.
   
   ## Changes
   
   - Register the existing callbacks with the Native committer and keep 
eligible REST commits on the Native publication path.
   - Convert Native notifications to the existing `CommitCallbackContext`, 
including Python `Snapshot`, `ManifestEntry`, `GenericRow`, canonical file 
paths and assigned row-tracking metadata.
   - Decode one context per notification and share it across callbacks in 
registration order. Callbacks added after Native initialization or between 
commits take effect on later commits.
   - Preserve the existing callback close lifecycle, propagate callback 
exceptions, and retain committed files after notification failures or lost 
publication responses.
   
   Publication and recovery notification belong to Rust core; Python adapts the 
existing API. The public Python callback API is unchanged.
   
   ## Verification
   
   - Native commit / write / existing callback regression suites: 187 passed.
   - Native counters: 127 plans, 115 reads, 86 writes and 88 commits exercised.
   - Coverage includes append, primary-key and Data Evolution tables; overwrite 
ADD/DELETE entries; empty commits; lost REST responses; callback errors; Native 
reads inside callbacks; late registration; shared contexts; close errors and 
callback-owner GC cycles.
   - Flake8 and Python 3.6 grammar validation for changed Python sources: 
passed.
   
   ## Dependency
   
   Requires https://github.com/apache/paimon-rust/pull/1108. This PR is draft 
until the Rust change merges; Native CI continues building upstream Rust `main`.
   


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