[Views] Add materialized view storage-table & refresh-state support (ported to apache-iceberg-1.11.0) - #18135
Closed
findinpath wants to merge 2 commits into
Closed
findinpath wants to merge 2 commits into
findinpath wants to merge 2 commits into
Conversation
…ache#9830 Vendored from wmoustafa's materialized-views branch (rebased onto origin/main), copied verbatim onto the apache-iceberg-1.11.0 release tag instead of tracking origin/main, to give Trino a stable base to build the Iceberg REST catalog materialized view PR against.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Minimal, self-contained port of the materialized-view "storage table" mechanism and its
RefreshState/SourceTableState/SourceViewState freshness/refresh bookkeeping model onto the
stable apache-iceberg-1.11.0 release tag, instead of tracking main.
This branch carries just the storage-table/refresh-state-related files from @wmoustafa's
materialized-views branch (which tracks main) — ViewVersion#storageTable(),
ViewBuilder#withStorageTableIdentifier(...), the corresponding wire-format support in
ViewVersionParser/RESTSessionCatalog/CatalogHandlers, and the new RefreshState /
RefreshStateParser / SourceState / SourceTableState / SourceViewState classes — applied on top
of apache-iceberg-1.11.0, dropping everything else that branch picked up incidentally from
tracking main (unrelated API churn, test adjustments, etc.).
Why
Trino's Iceberg REST catalog materialized-view support (trinodb/trino#31027) needs this native
mechanism to exist in a buildable Iceberg artifact. This branch exists so that PR can build and
run its test suite against something closer to a real release than a full main snapshot, while
the underlying spec/reference-implementation work is still unmerged upstream.
Relationship to other PRs
by a native storage table, with Spark integration).
This PR is not a proposal to merge materialized views into Iceberg — it's a downstream
showcase/reference build for trinodb/trino#31027. Please treat #9830/#11041 as the actual venues
for that discussion.