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

   ### Purpose
   
   Align native REST BLOB view dependency reads with Java and existing PyPaimon 
behavior. PyPaimon already supplies `X-Paimon-Read-Via` and uses the referenced 
table's FileIO. Rust currently omits that header and resolves payloads with the 
downstream FileIO, so reads can fail under dependency permissions or 
table-scoped data tokens.
   
   The Python regression reproduces the difference against a REST service 
requiring the outermost table identity: classic direct and nested view reads 
succeed, while the original native reads fail with 403.
   
   ### Brief change log
   
   - Create a dependency REST environment carrying the encoded outermost 
identifier; retain existing Read-Via, merged catalog options, signing headers, 
and shared caches without changing ordinary requests.
   - Retain each referenced table's refreshable FileIO and resolve its view 
payloads with that FileIO.
   - Group referenced fields and row ranges by upstream table and scan them 
together, matching Java's field-ID lookup.
   - Keep authorization and row selection ahead of dependency resolution. 
Preserve NULL, descriptor output, and payload bytes that themselves resemble a 
serialized descriptor.
   
   ### Tests
   
   - Rust focused suites: 82 data-evolution reader tests, 29 table-read tests, 
4 REST environment tests, and 104 REST catalog integration tests passed.
   - REST regression requires Read-Via and covers limits, partial files, 
authorization, predicate-only fields, and descriptor-shaped payloads.
   - Separate FileIO regression resolves the same URI through two distinct 
upstream backends, including NULL and descriptor-only output.
   - `cargo fmt --all -- --check` and Rust 1.98.0 workspace Clippy with 
`fulltext,vortex` and `-D warnings` passed.
   - Built the Python extension and ran nine PyPaimon suites with all five 
Native flags: 983 passed, including REST tokens and native MERGE sources. The 
paired Python regression PR will be linked separately.
   
   ### API and Format
   
   Adds the REST header-name constant. No table/binding API or storage-format 
changes.
   
   ### Documentation
   
   Existing REST BLOB view behavior is corrected; no new option or Python 
capability is introduced.
   


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