You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(catalog): implement catalog loader for s3tables (apache#1598)
## Which issue does this PR close?
- Closesapache#1256
## What changes are included in this PR?
### Catalog Registry Refactor
* Introduced a static `CATALOG_REGISTRY` mapping catalog type strings
(e.g., `"rest"`, `"s3tables"`) to their corresponding builder factory
closures.
* Eliminates hard-coded catalog type handling in `load()` and
centralizes catalog registration logic.
* Makes it easier to add new catalog implementations in the future
without touching core loader logic.
### New S3 Tables Catalog Support
* Implemented an **S3 Tables Catalog Builder**.
* Added the `"s3tables"` catalog type to the registry in
`crates/catalog/loader`.
* Updated workspace configuration to include the new
`iceberg-catalog-s3tables` crate.
* Added comprehensive example usage in the crate documentation.
### Hive metastore
* The `hive_metastore` was upgraded from `0.1.0` to fix after rebasing
your S3Tables feature branch because the HMS catalog and S3Tables
catalog share common Rust dependencies (pilota, volo-thrift, etc.)
* These shared dependencies created version conflicts that manifested as
"derivative attribute compilation errors."
Upgrading to hive_metastore `0.2.0` resolved these transitive dependency
conflicts.
## Are these changes tested?
Yes.
* Added new unit tests for the S3 Tables catalog.
* Expanded loader tests to:
* Verify loading of supported catalogs via the registry.
* Validate improved error messages listing supported catalog types.
* Test the new ergonomic `CatalogLoader` API for both `"rest"` and
`"s3tables"`.
0 commit comments