Skip to content

feat(iceberg): add v3 deletion vector support - #1162

Open
vikaxsh wants to merge 66 commits into
stagingfrom
feat/iceberg-deletion-vectors
Open

feat(iceberg): add v3 deletion vector support#1162
vikaxsh wants to merge 66 commits into
stagingfrom
feat/iceberg-deletion-vectors

Conversation

@vikaxsh

@vikaxsh vikaxsh commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds dv as a third per-stream delete mode alongside eq and pos, writing Iceberg v3 Puffin deletion vectors instead of Parquet positional deletes.

Introduces PositionalDeleteSink so PositionalDeltaWriter can target either representation, plus DeletionVectorConverter and PreviousDeleteLoader to merge new deletes with existing Parquet positional deletes or deletion vectors without resurrecting previously deleted rows.

Updates EqualityDeleteMigrator.migrate() to accept a targetMode, allowing tables to switch from equality deletes directly to pos or dv encoding in a single atomic RewriteFiles commit.

Fixes #1168

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

  • Scenario A
  • Scenario B

Screenshots or Recordings

Documentation

  • Documentation Link: [link to README, olake.io/docs, or olake-docs]
  • N/A (bug fix, refactor, or test changes only)

Related PR's (If Any):

hash-data and others added 30 commits July 15, 2026 15:43
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:32 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:32 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:32 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:32 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
@vikaxsh
vikaxsh temporarily deployed to integration_tests August 28, 2026 05:50 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants