Docs: Add Table Spec V3 breakdown to implementation status page - #17311
Open
ZephyrYWZhou wants to merge 1 commit into
Open
Docs: Add Table Spec V3 breakdown to implementation status page#17311ZephyrYWZhou wants to merge 1 commit into
ZephyrYWZhou wants to merge 1 commit into
Conversation
The Implementation Status page (site/docs/status.md) only broke down Table Maintenance/Update/Read/Write Operations and Catalog operations into V1 and V2 sections. Table Spec V3 (deletion vectors, row lineage, etc.) is ratified, so this adds the missing V3 subsections. Per-language V3 values were verified against the current HEAD of each implementation repo (apache/iceberg for Java, iceberg-python, iceberg-rust, iceberg-go, iceberg-cpp): - Deletion vector read/write reflects actual support: Java, Go and C++ implement DVs; Rust does not yet (explicit TODOs, no DV writer); PyIceberg reads DVs but cannot write to v3 tables (manifest writer rejects format version 3). - Catalog V3 tables mirror V2 since catalogs serialize v3-capable metadata and are format-version-agnostic. Closes apache#17308
ZephyrYWZhou
force-pushed
the
docs/status-v3-breakdown
branch
from
July 21, 2026 06:59
2c50a61 to
a709340
Compare
|
Thanks. Looks good to me. I am fairly new to the Iceberg eco-system, so I will wait for someone who is familiar to give 👍 |
Author
|
Thanks for the first look @viggy28! @kevinjqliu you've maintained site/docs/status.md (including the V3 data-types breakdown) so I'd really value your review here. |
uros-b
reviewed
Jul 29, 2026
uros-b
left a comment
Member
There was a problem hiding this comment.
cc @ZephyrYWZhou regarding #17416 (review) (possible duplicate PR)
Author
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 changes were proposed in this pull request?
The Implementation Status page (
site/docs/status.md) only broke down Table Maintenance / Update / Read / Write Operations and Catalog operations intoTable Spec V1andTable Spec V2sections. There was noV3section anywhere, even though Table Spec V3 (deletion vectors, row lineage, etc.) is ratified.This PR adds the missing
Table Spec V3subsections. Closes #17308.How were the values determined?
Per-language V3 values were verified against the current
mainHEAD of each implementation repository, not carried over blindly from V2:apache/iceberg(this repo)apache/iceberg-pythonapache/iceberg-rustapache/iceberg-goapache/iceberg-cppNotable V3-specific findings from the source:
core/.../deletes/BaseDVFileWriter.java).table/dv/,arrow_scanner.goDV read path; partitioned DV write is in progress).data/deletion_vector_writer.cc,data/delete_loader.cc,table_scan.cc).delete_file_index.rs/caching_delete_file_loader.rs; no DV writer). V2 position/equality deletes exist, but DVs do not.io/pyarrow.pyPuffin branch) but cannot write to v3 tables (the manifest writer rejects format version 3 inmanifest.py), so all V3 write/update rows areN.Note
Some pre-existing V1/V2 cells appear stale relative to current code (e.g., a few Rust maintenance ops and the C++ column). This PR scopes the audit to the new V3 tables; the V1/V2 cells are left unchanged and can be refreshed separately.
Documentation change only
No code changes; this only edits
site/docs/status.md.