plusplusjiajia opened a new pull request, #733:
URL: https://github.com/apache/paimon-rust/pull/733
### Purpose
REST catalogs can declare non-Paimon table types via the `type` table option
(e.g. `type=iceberg-table`, see Java `TableType`). paimon-datafusion currently
tries to read every table as Paimon, so these tables fail with unrelated
errors. This PR routes them to pluggable engines instead:
- `paimon::spec::NON_PAIMON_TABLE_TYPES` is the single source of truth
(currently `iceberg-table`); `register_table_engine` validates against it.
- `Catalog::load_table_routing` (defaulted) returns
`RoutedTableLoad::{Paimon, NonPaimon}`; the REST override does one GetTable,
checks the declared type, and enforces `query-auth` before returning
`NonPaimon`.
- Routing lives inside `PaimonCatalogProvider` so downcast paths (temp
tables, time travel) keep working; `table_exist` mirrors resolution.
- `RESTEnv::build_table` fails closed on declared non-Paimon types,
covering all raw `get_table` paths (writes, procedures, time travel). Java
instead returns a metadata-only `IcebergTable`; a read-only shell can be added
later if wanted.
--
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]