HonahX opened a new pull request, #498: URL: https://github.com/apache/iceberg-python/pull/498
This draft PR experiments a possible implementation for `CreateTableTransaction`. At this early stage, I will focus on the high-level requirements and correctness to support staged creation and commit the staged table. The new APIs for `CreateTableTransaction` are subject to change. Just for your convenience, the current PR: On Table Side: - Add `StagedTable` which represents a uncommitted table, inherits `Table` and disables table scan. - Add `CreateTableTransaction` which inherits `Transaction`, takes in a `StagedTable` and add initial create table updates to the `self._updates` - Other helpers to help build metadata from a chain of updates On Catalog Side: - Add `_create_staged_table` API which returns a `StagedTable` - Add `create_table_transaction` API - Add a experimental implementation for GlueCatalog The tentative API looks like ```python with test_catalog.create_table_transaction(identifier, table_schema_nested) as txn: with txn.update_schema() as update_schema: update_schema.add_column(path="b", field_type=IntegerType()) txn.set_properties(test_a="test_aa", test_b="test_b", test_c="test_c") ``` Appreciate any initial reviews, suggestions and thoughts! cc @syun64 @Fokko -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org