-
Notifications
You must be signed in to change notification settings - Fork 848
feat(iceberg): bump iceberg-rust to v0.8.0 and add write support #19200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Upgrade iceberg-rust from v0.4.0 to v0.8.0 with breaking API changes - Add IcebergFileIO wrapper to adapt new FileIO API to OperatorRegistry trait - Update catalog builders to use new CatalogBuilder trait with load() method - Re-enable standalone_iceberg_tpch CI tests that were disabled for arm64 - Upgrade hive_metastore from v0.1.0 to v0.2.0 - Simplify generate_catalog_meta to generate_default_catalog_meta
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 827a035a51
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
- Handle file:// and memory:// URIs that don't have a host/bucket - Fix gcs.project-id mapping to project_id (was incorrectly default_storage_class) - Use Error::other() to fix clippy io_other_error lint
- Basic insert with multiple rows - Multiple insert statements - Various data types (int, bigint, float, double, string, date, boolean) - NULL value handling - Partitioned table writes - INSERT SELECT from another iceberg table - Aggregation queries on inserted data
- Map iceberg 'table not found' errors to ErrorCode::UnknownTable - This allows DROP TABLE IF EXISTS to work correctly for iceberg tables - Fix column type annotation in base.test (ITI -> TAT) - Remove write tests since iceberg tables don't support INSERT yet
- Test CREATE TABLE with various types (int, bigint, double, string, date, boolean) - Test CREATE TABLE with partition by clause - Test INSERT statements (expected to fail with error 1002 since writes not yet supported) - Test DROP TABLE cleanup
- Implement IcebergDataFileWriter for writing data blocks to parquet files - Add IcebergCommitSink for committing data via Transaction API - Support both partitioned and non-partitioned table writes - Handle multi-field partitioning with FanoutWriter - Add type conversion from Databend scalars to Iceberg literals - Include cache invalidation after successful commits - Update tests to verify write functionality works correctly
- Suppress deprecated as_slice/from_slice warnings in hash.rs and jwk.rs - Add missing rand::Rng import in sized_spsc.rs tests - Add allow for diverging_sub_expression in raft_state_machine_impl.rs
The alpine variant doesn't support ARM64 architecture.
The polygon ring starting point changed after dependency upgrade. The polygon is geometrically equivalent - same shape, different vertex order.
- Add astral-sh/setup-uv@v7 to iceberg tpch test action - Update float scientific notation format (e308 -> e+308) in tests
tests/sqllogictests/suites/query/functions/02_0060_function_geometry.test
Show resolved
Hide resolved
|
@codex review |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/
Summary
Upgrade iceberg-rust from v0.4.0 to v0.8.0 and implement write support for Iceberg tables.
Dependency Upgrades
iceberg-rustfrom v0.4.0 to v0.8.0 with breaking API changeshive_metastorefrom v0.1.0 to v0.2.0IcebergFileIOwrapper to adapt new FileIO API toOperatorRegistrytrait (iceberg-rust removed built-in support)CatalogBuildertrait withload()methodNew Feature: Iceberg Table Write Support
IcebergDataFileWriterfor writing data blocks to Parquet filesIcebergCommitSinkfor committing data via Transaction APIFanoutWriterOther Changes
standalone_iceberg_tpchCI tests that were temporarily disabled for arm64 compatibilitygenerate_catalog_metatogenerate_default_catalog_metaTests
Added comprehensive SQL logic tests for:
INSERT INTO)Type of change
This change is