The GitHub Actions job "Required Checks" on texera.git/gh-readonly-queue/main/pr-6944-148b40c03628114a9f6cb17a117e9feeec9a878a has succeeded. Run started by GitHub user mengw15 (triggered by mengw15).
Head commit for run: 15d82c7b9d2af862741f71653247c46f060473a7 / Meng Wang <[email protected]> feat(storage): per-warehouse Iceberg catalog and warehouse-scoped URIs (#6944) ### What changes were proposed in this PR? First slice of the per-user bring-your-own-S3 warehouse feature (umbrella #6870). This is a **foundation-only, backward-compatible** change that makes the storage layer warehouse-aware without changing any behavior yet: - Replace the single shared Iceberg catalog with a **per-warehouse cache** on both the JVM (`IcebergCatalogInstance`) and Python (`iceberg_catalog_instance.py`) sides, so one worker process can hold several REST catalogs — one per warehouse it touches. Only the REST (Lakekeeper) catalog varies by warehouse; the hadoop/postgres catalogs stay warehouse-agnostic. - Encode the warehouse as a leading `/wh/<name>` segment in VFS URIs (`VFSURIFactory`), so a URI fully identifies where its tables live; the read path (`DocumentFactory`) derives the warehouse back out of the URI. - Add an optional `warehouse` field to `WorkflowContext` to carry the selection through an execution. With no warehouse in play (the default), URIs and catalog behavior are byte-for-byte identical to today, so nothing changes for existing deployments. ### Any related issues, documentation, discussions? Closes #6929. Part of #6870 (design discussions #5293 and #6040). ### How was this PR tested? Adds unit tests for the new warehouse-aware behavior: - `VFSURIFactorySpec` — `warehouseFromURI` extraction, the `/wh/<name>` segment (present with a warehouse, absent without), and that a warehouse-scoped URI still round-trips through `decodeURI`. - `DocumentFactorySpec` — creating and finding a document for a warehouse-scoped URI against a local Iceberg catalog (the `/wh/` prefix is stripped from the storage key). - `test_vfs_uri_factory.py` — matching coverage for the Python `warehouse_from_uri`. The existing storage/Iceberg tests continue to cover the default (no-warehouse) path unchanged. The full build and test suite run in CI. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Opus 4.8 --------- Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Report URL: https://github.com/apache/texera/actions/runs/31122083216 With regards, GitHub Actions via GitBox
