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

   ### Purpose
   
   Complete the native read path for REST table views and plans already 
supported by PyPaimon, while retaining current Java authorization semantics. 
This also lets Python writer restores use core planning rather than a separate 
Python manifest scan.
   
   ### Brief change log
   
   - Bind REST authorization to the current catalog identity/rule schema and 
the actual historical or branch read schema. Match fields by ID and name, 
provide missing current rule operands through schema evolution, and allow 
statistics retained for dropped columns as Java does.
   - Preserve serialized query-authorization metadata without treating it as a 
live grant. Add core `TableRead::authorize_splits` to request fresh 
authorization and validate transported snapshot files, deletion vectors, bucket 
layouts and logical merge groups before reading. Incompatible captured 
restrictions are rejected for replanning.
   - Validate only the projected and authorization-dependent column files for 
data-evolution reads, while rejecting missing merge inputs, duplicate files and 
altered deletion vectors.
   - Add `TableScan::plan_for_write` with whole-table unrestricted 
authorization and the complete file inventory, including L0 and all 
data-evolution column files regardless of read projection.
   - Carry an already resolved local path mapping through FileIO and REST table 
construction without requesting unused cloud credentials. Preserve original URI 
identity and captured snapshots.
   - Expose the core operations through thin Python bindings and update type 
stubs.
   
   ### Tests
   
   - `cargo +1.98.0 test -p paimon --lib --no-default-features --features 
storage-memory,storage-fs`: **4222 passed, 6 ignored**.
   - `cargo +1.98.0 test -p paimon --test rest_catalog_test`: **153 passed**.
   - `cargo +1.98.0 clippy -p paimon -p pypaimon_rust --lib --tests -- -D 
warnings`: passed.
   - `cargo +1.98.0 fmt --all -- --check`: passed.
   
   Regression coverage includes historical and branch grants, live 
reauthorization, transported metadata and provenance, policy conjunct ordering, 
projected data-evolution reads, full writer inventories, and mounted FileIO 
read/write/list behavior.
   
   ### API and Format
   
   Adds core writer planning, transported-split authorization, resolved FileIO 
construction/copying and the corresponding Python bridge APIs. Existing Java 
QueryAuthSplit wire layout is preserved; no storage-format change.
   
   ### Documentation
   
   The companion PyPaimon PR documents the Native capabilities and retains 
Python execution for arbitrary providers or incompatible captured restrictions.
   


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