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

   ### Purpose
   
   Allow PyPaimon's existing file-scanner API to use Rust Core rather than 
constructing a Python executor. Preserve the separation between raw manifest 
metadata and query results.
   
   ### Brief change log
   
   - Add `TableScan::plan_files` and `FileScanPlan` for complete manifest 
entries and the selected snapshot ID. File metadata planning precedes 
projection, LIMIT, row selection, global-index refinement and split 
distribution.
   - Use the existing snapshot/time-travel selection and share incremental AUTO 
event-source selection with row planning. Keep merged ADD/DELETE entries, 
historical schema statistics, data-evolution column files and Blob metadata.
   - Authorize all columns before reading metadata, require an unrestricted 
whole-table grant and recheck REST table identity after planning, including 
empty results.
   - Add independent level-zero and pending-bucket policies for the existing 
Python scanner controls. Unconfigured queries retain their current defaults. 
Explicit L0 reads keep overlapping primary-key versions together through split 
packing and sharding.
   - Expose typed file plans and existing `ManifestEntry` values through the 
Python bindings. No custom Python manifest-source or follow-up-scanner callback 
is added.
   
   ### Tests
   
   - Rust 1.98.0 targeted runtime tests: **16 passed, 0 failed**.
     - Core raw file metadata planning: 3 passed.
     - Explicit L0 key merging and sharding for FirstRow and deletion-vector 
deduplication, including pending buckets: 1 passed.
     - Incremental timestamp scans: 7 passed.
     - REST raw file planning and writer authorization: 4 passed.
     - Python binding typed metadata transport and independent policies: 1 
passed.
   - `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.
   - No Native Python extension was built or installed for these tests.
   
   ### API and Format
   
   Adds `TableScan::plan_files`, `TableScan::with_file_filters`, `FileScanPlan` 
and corresponding Python bindings. No storage-format change or new 
configuration option.
   
   ### Documentation
   
   Rust API documentation and Python type stubs describe the file-planning and 
authorization boundary. PyPaimon's integration is in 
https://github.com/apache/paimon/pull/10742.
   


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