YuangGao opened a new pull request, #3398:
URL: https://github.com/apache/iceberg-rust/pull/3398
## Which issue does this PR close?
- Closes #2784.
## What changes are included in this PR?
Adds client support for `POST /v1/{prefix}/transactions/commit`, which
commits changes to several tables atomically. Continues #2786 by @steveis,
which went stale without review.
- `Transaction::prepare_commit()` builds a transaction's `TableCommit`
without refreshing or sending it; `do_commit` now uses it too.
- `RestCatalog::commit_transaction` /
`RestSessionCatalog::commit_transaction` send the group in one request. The
server returns no metadata, so callers reload the tables; on a conflict nothing
is applied.
cc @CTTY: `prepare_commit` takes `&mut self` instead of consuming the
transaction, so it can still report the commit status for the cleanup planned
in RFC-0003. Does that match what you have in mind?
## Are these changes tested?
- Unit tests for `prepare_commit` and, with mockito, the request body,
`409`, an unadvertised endpoint, and an empty group.
- Integration tests against the REST fixture: two tables commit together,
and a stale requirement on one table fails the group with `409` while the other
table stays unchanged.
## AI Disclosure
- AI-assisted implementation.
--
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]