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

   ### Purpose
   
   Use the writer's metadata boundary for PyPaimon postpone bucket planning. 
The previous Native adapter derived existing bucket counts from a query plan, 
which requires unrestricted SELECT authorization and can combine entries 
carrying different total bucket counts. Java's PostponeUtils.getKnownNumBuckets 
reads writer/store metadata directly.
   
   ### Brief change log
   
   - Add PostponeFixedBucketWriteBuilder.bucket_plan() to resolve known 
partition layouts from the latest writer baseline, independently of historical 
read selectors.
   - Reuse the existing per-entry bucket validation and conflict checks. 
Pending buckets do not define an existing layout. Explicit plans take 
precedence; overwrite otherwise starts with an empty layout. Configured default 
counts do not create fictional partition entries.
   - Require a catalog-loaded write identity for guarded tables without issuing 
SELECT requests. Reuse the REST snapshot response directly, including when its 
snapshot JSON file is unavailable in storage.
   - Add PostponeBucketPlan.to_arrow() using the same positional 
partition-columns + total_buckets schema accepted by from_arrow(). Bind the 
getter as a PyArrow RecordBatch and update the Python type stub.
   - Move a test-only BinaryRow import into the tests module to fix an existing 
main Clippy warning; no suppression or behavior change.
   
   ### Tests
   
   - Rust 1.98.0: 9 relevant Core tests and 1 PyArrow binding test passed on 
the final source.
   - Regressions cover explicit/overwrite/default precedence, nullable 
partition round trips, pending buckets, latest writer baseline, conflicting 
layouts within one bucket, REST write identity, denied SELECT, and missing 
filesystem snapshot JSON.
   - cargo +1.98.0 clippy --locked --all-targets --workspace --features 
fulltext,vortex -- -D warnings: passed.
   - cargo +1.98.0 fmt --all -- --check and git diff --check: passed. Python 
type stub parses with Python 3.6 grammar.
   - No Native Python extension was installed or rebuilt; the Rust binding test 
harness was compiled and run normally.
   
   ### API and Format
   
   Adds the Core builder getter, the symmetric Arrow plan export, and the 
matching binding. No new dependency, table option, or storage-format change.
   
   ### Documentation
   
   Rust API comments and the Python type stub document the writer authorization 
boundary and plan precedence. A paired PyPaimon PR integrates the getter and 
cleans the write execution boundary.
   


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