Add support for position and equality deletes in vortex#17
Merged
Conversation
0319b57 to
a314dc0
Compare
Pushes position deletes into the Vortex scan so deleted rows are excluded natively instead of being read and filtered out afterwards. DeleteFilter exposes the deleted positions for pushdown (skipped when the _is_deleted column is projected, since those rows must be marked rather than removed). GenericReader forwards them only when the reader advertises support via the new ReadBuilder.supportsPositionDeletes(), so Parquet/ORC/Avro keep applying deletes post-scan. VortexIterable serializes the positions as a portable 64-bit Roaring bitmap and applies EXCLUDE_ROARING row selection. Also adds a Vortex position-delete writer (PositionDeleteVortexWriter, VortexFormatModel.forPositionDeletes) for writing path/pos delete files, plus TestVortexPositionDeletes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
VortexSchemas.convert (used to bind scan filters in VortexIterable) threw on struct columns because toIcebergType had no Struct branch. Recurse into struct children, assigning unique field ids via a shared counter (also fixes the latent duplicate-id bug where list elements were hardcoded to id 0). Map stays unsupported. This unblocks reading Vortex tables whose schema contains structs through the generic reader (which always binds the residual filter), so the full DeleteReadTests suite now runs for Vortex via TestVortexReaderDeletes (data + v2 position-delete files + v3 DVs, written through the standard GenericFileWriterFactory/registry path). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
No description provided.