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

   ### Purpose
   
   Expand the native planning paths available to PyPaimon while preserving Java 
table semantics. This continues the planner alignment from #845 and uses the 
resolved-table constructor introduced in #846.
   
   Reloading a filesystem catalog table loses the caller's resolved schema and 
removed or overridden options. Separately, DV merge-on-read currently groups 
fully materialized files across levels by overlapping primary-key ranges. Java 
packs those files by size and marks them raw convertible; this matters for 
clustered files that are not sorted by primary key and for consumers choosing a 
reader from the split flag.
   
   ### Brief change log
   
   - Expose `Table.from_resolved_schema()` in the Python binding, accepting 
Java-format schema JSON, FileIO properties, an identifier and a branch. 
Preserve the complete supplied schema/options without a catalog lookup or a 
second schema time-travel resolution.
   - Pack materialized DV/first-row files by size across levels and retain 
raw-convertible splits. Continue grouping overlapping files for merge when L0 
is present.
   - Cover field-ID-based rename reads and predicates, replaced snapshot 
selectors, branch/tag/empty plans, invalid schemas and identifiers, strict 
FileIO options, and query authorization. Add real write/plan/read tests across 
merge engines, DV merge-on-read settings, split sizes and subsequent L0 writes.
   
   ### Tests
   
   - `cargo test -p paimon --lib table::`: 1,282 passed, 1 ignored.
   - `cargo test -p paimon --test first_row_scan_test`: 5 passed, including the 
materialized/L0 matrix.
   - Python binding read, table and resolved-schema regression suites passed 
with the rebuilt wheel.
   - Consumer integration: 352 PyPaimon tests passed, exercising 506 native 
plans across append, PK, DE, dynamic buckets, cross-partition updates, 
incremental scans, indexes, chunk shuffle and schema evolution.
   - `cargo clippy --locked -p paimon -p pypaimon_rust --all-targets -- -D 
warnings` and `cargo fmt --all --check` passed.
   - The materialized-DV regression fails before the fix; resolved-schema 
binding tests fail against the previous wheel.
   
   ### API and Format
   
   Adds the Python `Table.from_resolved_schema()` factory and its type stub. No 
storage or split wire-format changes. REST authorization and credential refresh 
continue to require catalog-backed tables. This does not add clustering writes 
or relax Rust's create-time validation for first-row/DV tables.
   
   ### Documentation
   
   Document the resolved-schema factory, FileIO options, branch selection and 
time-travel behavior in the Python binding README.
   


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