nevzheng opened a new pull request, #12224: URL: https://github.com/apache/gravitino/pull/12224
### What changes were proposed in this pull request? This is PR 3 of 3 in the deletion-generation storage stack. - Add an atomic transaction for tombstoning one exact table generation. - Stamp the table, current version, columns, owner, authorization, tags, policies, and statistics with the same deletion ID. - Add an atomic transaction for restoring only rows belonging to that exact deletion generation. - Use exact predicates, optimistic revisions, and transaction-scoped row-level coordination. - Add tests for exact restoration, rollback, name conflicts, and generation isolation. Stack: - Parent epic: #12220 - Previous: #12223 - Depends on: #12223 - Incremental diff: https://github.com/nevzheng/gravitino/compare/codex/iceberg-rest-delete-10-02-action-storage...codex/iceberg-rest-delete-10-03-table-transactions Until the preceding PRs merge, GitHub's `main`-based Files Changed view is cumulative. The incremental comparison above contains only this PR's change. ### Why are the changes needed? DELETE and UNDROP must atomically modify the original table and only the related metadata belonging to the same immutable deletion generation. This prevents partial tombstones and prevents an old deletion from affecting a later same-name table. Part of #12220 ### Does this PR introduce _any_ user-facing change? No. Public DELETE, discovery, and UNDROP behavior will be introduced by the separate API epic. ### How was this patch tested? `./gradlew :core:test --tests org.apache.gravitino.storage.relational.service.TestTableDeletionService -PskipITs -PskipDockerTests=true` -- 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]
