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: [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]