Smith-Cruise opened a new pull request, #4: URL: https://github.com/apache/datafusion-iceberg/pull/4
## Which issue does this PR close? No open issue tracks this. This is a re-submission of apache/iceberg-rust#3207, which was closed when the DataFusion integration moved to this repository. The same change was previously approved by @gabotechs and +1'd by @derrley and @toutane in apache/iceberg-rust#2123, but that one was closed by the stale bot rather than on review. ## What changes are included in this PR? Makes `IcebergTableProvider::try_new` and `IcebergTableProvider::metadata_table` `pub` instead of `pub(crate)`. `IcebergTableProvider` is the only provider with write support, but it has no public constructor. The one public way to reach it is `IcebergCatalogProvider::try_new`, which eagerly lists every namespace and loads every table of the catalog, and takes over the whole `CatalogProvider`. The struct and its `TableProvider` impl are already public, and so is the returned `IcebergMetadataTableProvider`, so this adds no new types — it only relaxes visibility. Compared to apache/iceberg-rust#3207, the `public-api.txt` part of the diff is dropped: this repository does not carry that file. ### Concrete use case We run a DataFusion-based engine that serves Iceberg, Delta, Paimon and Hive tables, so we have our own `CatalogProvider` implementation and cannot use `IcebergCatalogProvider`. But today `IcebergTableProvider` can only be obtained through `IcebergCatalogProvider`, which makes it inconvenient to serve a single Iceberg table from our own catalog. With `try_new` public we could just construct it directly. ## Are these changes tested? This is a visibility change with no behavior change, so it adds no tests. Verified locally with `cargo build -p datafusion-iceberg` and `cargo test -p datafusion-iceberg --lib` (89 passed). ## AI Disclosure Written with assistance from Claude Code. The author reviewed the change and ran the verification above. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
