nevzheng opened a new pull request, #12229:
URL: https://github.com/apache/gravitino/pull/12229
### What changes were proposed in this pull request?
This is Stack 20 review unit 3 of 5. It depends on #12228 and should be
reviewed before #12226.
Review the commits in order:
1. `feat(core): join retained table deletion records`
- Adds a read-only projection pairing the retained `table_meta` row with
its exact `entity_deletion` action.
- Implements one-statement joins for an exact deleted table and all
deleted tables in a schema.
- Avoids N+1 action lookups and does not duplicate table identity or name
in `entity_deletion`.
2. `feat(iceberg): add retained deletion read model`
- Maps the joined storage projection into a safe Iceberg deletion
representation.
- Produces a strong ETag from the public deletion representation for
conditional UNDROP.
- Keeps metadata locations, FileIO configuration, credentials, and
cleanup internals out of the public model.
**After this PR:** the server can resolve an exact retained table generation
and derive its strong ETag without loading the live Iceberg catalog. The public
`deleted=true` table API is added by #12226.
Review order: #12222 → #12223 → #12225 → #12228 → **this PR** → #12226 →
#12227.
Incremental diff:
https://github.com/nevzheng/gravitino/compare/codex/iceberg-rest-delete-20-01b-delete-api-cache...codex/iceberg-rest-delete-20-01c-deleted-read-model
### Why are the changes needed?
Deleted-table APIs and conditional UNDROP need one generation-safe
storage/read boundary that joins the retained table identity with its deletion
action and supplies a stable public precondition token.
Related: #12221
### Does this PR introduce _any_ user-facing change?
No. This PR adds the internal joined read model and ETag derivation. The
existing table API exposes it in #12226.
### How was this patch tested?
The review-unit head passes focused joined-row storage, exact-name lookup,
lifecycle mapping, null-retention, safe representation, and strong ETag tests.
--
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]