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]