geoffreyclaude opened a new pull request, #2602: URL: https://github.com/apache/iceberg-rust/pull/2602
## Which issue does this PR close? - Closes #2601. ## What changes are included in this PR? This PR routes file storage work through the IO handle of an explicitly configured Iceberg `Runtime`. When a runtime is configured on `FileIO`, the raw storage backend is kept unchanged and wrapped in a private runtime-aware adapter. The adapter dispatches storage operations, reader creation, byte-range reads, writer creation, writes, and close operations onto `runtime.io()`. Concrete storage implementations remain runtime-agnostic and the `Storage` trait is unchanged. Catalogs now propagate their configured runtime into the `FileIO` instances they build, and loaded `Table` values can be rebound with `Table::with_runtime` so object-cache reads use the same runtime-aware `FileIO`. The DataFusion catalog-backed provider also has runtime-aware constructors, so table loads can use the runtime-aware path while scan streams continue to be polled by DataFusion as before. This deliberately does not change scan partitioning, eager file planning, or the DataFusion physical plan shape. Disclosure: this PR was implemented with assistance from Codex and reviewed before submission. ## Are these changes tested? - `cargo fmt --check` - `cargo test -p iceberg test_file_io_with_runtime_routes_storage_operations --locked` - `cargo test -p iceberg file_io --locked` - `cargo test -p iceberg-datafusion test_catalog_backed_provider --locked` - `cargo check -p iceberg -p iceberg-catalog-rest -p iceberg-catalog-glue -p iceberg-catalog-hms -p iceberg-catalog-s3tables -p iceberg-catalog-sql -p iceberg-storage-opendal -p iceberg-datafusion --locked` - `cargo public-api -p iceberg --all-features -ss | diff - crates/iceberg/public-api.txt` - `cargo public-api -p iceberg-datafusion --all-features -ss | diff - crates/integrations/datafusion/public-api.txt` -- 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]
