xanderbailey opened a new pull request, #3039: URL: https://github.com/apache/iceberg-rust/pull/3039
## Which issue does this PR close? N/A. This is the independently reviewable foundation for transactional table creation. Additional catalog implementations and CREATE OR REPLACE semantics will follow in separate PRs. ## What changes are included in this PR? This PR adds staged table creation alongside the existing eager Catalog::create_table path. - Adds a TransactionalCatalog capability trait with create_table_transaction. - Adds a create transaction mode that exposes its staged Table for write actions, emits the initial metadata updates, and commits with assert-create. - Keeps staged tables invisible until commit and does not retry create conflicts. - Extends TableCommit so catalog implementations can distinguish and atomically apply creation commits without changing the public builder signature. - Implements staged creation for MemoryCatalog, including catalog-derived locations and atomic registration under its catalog lock. - Updates the public API snapshot. Only MemoryCatalog implements the capability in this PR. REST support and replacement semantics are intentionally left for follow-up PRs. ## Are these changes tested? Yes. - Added a test that appends data to a staged table, verifies it is invisible before commit, and verifies the table and snapshot become visible together. - Added a concurrent-create test that verifies assert-create rejects the staged commit without modifying the winning table. - cargo test -p iceberg --lib: 1,576 passed. - cargo check --workspace --all-targets --all-features. - cargo clippy -p iceberg --all-targets --all-features -- -D warnings. - Pinned-nightly rustfmt and generated public API checks. ## AI Disclosure Developed with the help of Codex. -- 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]
