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

   ### Purpose
   
   PyPaimon already supports REST query authorization for streaming and 
timestamp-window reads, but Native `StreamTableScan` and combined incremental 
planning currently reject authorized tables. Authorized row-kind reads also 
reject every row filter or mask.
   
   ### Changes
   
   - Authorize every stream `plan()` call, including empty polls, before 
restoring consumers or advancing a snapshot. Keep the grant on an ephemeral 
scan and the resulting splits; refresh it on the next call.
   - Reuse that scope for combined Delta/Changelog and timestamp-window 
planning. Validate planned files before attaching the grant.
   - Preserve physical change kinds through row filters and column masks, 
including hidden fields and empty projections. Reuse the existing authorized 
Blob pipeline and apply LIMIT after filtering.
   - Keep the raw per-snapshot incremental and Diff authorization restrictions.
   
   The lifecycle follows Java `AbstractDataTableScan.plan()` / 
`applyAuthRules()` / `convertPlan()`. No new public API or dependency is 
introduced.
   
   ### Verification
   
   - 350 focused Rust tests passed across REST catalog, streaming, combined 
incremental/timestamp scans, partition filters, scan units and read units.
   - New tests first reproduced the existing authorization rejection, then 
cover changing rules, captured rules, initial/follow-up/empty-poll failures and 
retry, consumer progress, schema/UUID drift, physical `-U/+U/-D`, zero 
projections, and Blob descriptors excluded before resolution.
   - Built the Python extension and exercised it with PyPaimon's Native and 
authorized-read regression suites.
   - `cargo fmt --all --check`
   - `cargo +1.98.0 clippy --locked --all-targets --workspace --features 
fulltext,vortex -- -D warnings`
   
   The companion PyPaimon PR enables standard REST authorized Native stream 
scans after this change reaches Rust main.
   


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