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

   ### Purpose
   
     `CoreOptions::ensure_read_authorized()` refuses a `query-auth.enabled` 
table because this client cannot enforce the server's row filter or column 
masking. It sits on the read boundary, so paths that read without crossing it 
are never gated: rewrites (`CowWriter`, the data-evolution update and delete 
writers), index builds and drops, bucket assignment, commits, and partition 
listing.
   
     Partition listing is the clearest case — `Table::partition_stats()` / 
`list_partitions()` are public and reach Python, and return the partition 
values and per-column stats that the DataFusion `$partitions` system table 
already refuses to serve.
   
     ### Brief change log
   
     The gate is added at each entry point, placed at the narrowest one that 
still has the table:
   
     - `TableWrite::new` rather than `DynamicBucketAssigner` — the assigner 
gets only a `FileIO` and a location, and `TableWrite::new` is the sole 
construction site for both assigners. It refuses every write, not only 
dynamic-bucket ones: the commit is blocked anyway, so failing at open avoids 
writing files that can never be
     committed.
     - `RESTCatalog::list_partitions` gates only its filesystem fallback; the 
server endpoint is the authority on its own path.
   
     `TableCommit::abort` is left ungated on purpose — it deletes only the 
files the caller just wrote and reads nothing.


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