osscm opened a new pull request, #15523:
URL: https://github.com/apache/iceberg/pull/15523

   ## Summary
   
     First in a series of incremental PRs toward implementing the Iceberg 
Materialized View
     spec (#11041). We wanted to share our approach early and welcome feedback 
from the
     community and the spec author before going further.
   
     Per the spec, a materialized view is a standard Iceberg view whose 
ViewVersion carries
     an optional `storage-table` field pointing to a regular Iceberg table 
holding precomputed
     query results. When absent, the entity is a plain logical view — fully 
backward compatible.
   
     **Changes in this PR:**
     - `StorageTableIdentifier` — new value class (`namespace`, `name`, 
optional `catalog`)
     - `ViewVersion` — new default `storageTable()` returning null for plain 
views
     - `BaseViewVersion` — exposes `@Nullable storageTable()` for Immutables
     - `ViewVersionParser` — serializes/deserializes the `storage-table` JSON 
field
   
     ## Spec Reference
     #11041 — Materialized View Spec (thanks @JanKaul and all PMC/community for 
driving this!)
   
     ## Proposed Implementation Plan
   
     We are planning to implement the spec incrementally and would love early 
input on
     whether this direction looks right to the community. Here is what we are 
thinking:
   
     - **Part 1 (this PR):** `StorageTableIdentifier` + `storage-table` field 
on `ViewVersion`
     - **Part 2:** `RefreshState` + `SourceState` data classes (snapshot 
summary post-refresh)
     - **Part 3:** `MaterializedView` interface extending `View`
     - **Part 4:** Catalog API — MV lifecycle methods in `ViewCatalog`
     - **Part 5:** Catalog implementations (REST, JDBC, Hive)
     - **Part 6:** Spark integration + SQL DDL (`CREATE MATERIALIZED VIEW`, 
`REFRESH`, `DROP`)
   
     We are happy to adjust the approach, merge steps, or re-sequence based on 
feedback.
   
     ## Test Plan
     - `./gradlew :iceberg-api:test --tests 
"org.apache.iceberg.view.TestStorageTableIdentifier"`
     - `./gradlew :iceberg-core:test --tests 
"org.apache.iceberg.view.TestViewVersionParser"`


-- 
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]

Reply via email to