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

   ## Purpose
   
   PyPaimon can already read branch tables through Rust, but its native writers 
fall back because Rust refuses branch writes. Enable Paimon branch writes in 
the Rust core and keep metadata, indexes, sequence numbers and publication 
scoped to the selected branch.
   
   ## Changes
   
   - Match Java `SnapshotCommit`: pass the branch explicitly at publication, 
and route filesystem snapshots/LATEST hints and REST commit identifiers with 
that argument.
   - Load REST branch schemas and FileIO through the catalog, including 
catalogs with no on-disk schema files. Reject a changed table UUID or location 
when switching a loaded handle to another branch.
   - Enable Paimon append, primary-key, Data Evolution and postpone 
fixed-bucket write/commit builders on branch handles. Historical handles remain 
read-only.
   - Restore sequence numbers, dynamic HASH indexes and postpone bucket layouts 
through the table's SnapshotManager. The previous writer code constructed 
main-branch managers directly.
   - Check resolved filesystem branch schemas before staging output, and refuse 
publication to missing branches.
   
   Data files and manifests remain shared under the table location, as in Java; 
each branch has independent schema/snapshot metadata, row-ID allocation, 
conflict checks and checkpoint recovery.
   
   ## Verification
   
   - 13 focused branch-write core regressions, including divergent 
sequence/HASH/postpone histories, overwrite/truncate, shared-file preservation, 
row-ID conflicts, checkpoint recovery, missing schemas and explicit publisher 
routing.
   - REST integration tests for catalog-only branch schemas and replacement 
UUID/location rejection.
   - Core library: 3,683 passed, 6 ignored.
   - REST catalog integration suite: 96 passed.
   - Workspace Clippy with `fulltext,vortex`, all targets, and `-D warnings`: 
passed.
   - `cargo fmt --all -- --check`: passed.
   - Built the Python wheel from this branch and exercised the PyPaimon Native 
branch/write/update/commit bridge.
   
   The paired PyPaimon change removes the main-only selection guard and adds 
filesystem/REST end-to-end branch tests. Python bindings continue to use the 
existing core APIs.
   


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