You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Add CreateTable API with simplified single-stage flow (#1629)
Implement create-table functionality where
CreateTableTransactionBuilder::build()
returns a Transaction with stored actions to be used for a commit.
```
API Usage:
let result = create_table(path, schema, engine_info)
.build(engine, committer)?
.commit(engine)?;
```
This specific change doesn't allow table properties and features to be
set and
has validations in the transaction module which error if unsupported
features or
properties such as row tracking and ICT are set in the table
configuration being
pushed down.
Key Changes:
1. CreateTableTransactionBuilder::build() takes committer and returns
Transaction
with commit info, protocol and metadata actions.
2. Transaction struct holds optional protocol/metadata actions for
create-table
3. Adds try_new_create_table() constructor alongside
try_new_existing_table()
4. commit() handles both existing-table and create-table flows
5. get_write_context() now returns DeltaResult for proper error handling
This aligns the Rust Kernel's create-table flow with the Java Kernel's
approach where Transaction is the single unit for all commit operations.
Testing:
Add comprehensive tests validating the basic create_table()
functionality introduced both unit and functional.
Co-authored-by: Sanuj Basu <[email protected]>
/// Fetch the latest version of the provided `application_id` for this snapshot. Filters the txn based on the SetTransactionRetentionDuration property and lastUpdated
0 commit comments