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]
