Skip to content

feat(table): wire Table.delete() to merge-on-read position deletes#29

Open
abnobdoss wants to merge 3 commits into
feat/mor-pr2-posdelete-writerfrom
feat/mor-pr3-delete-mor
Open

feat(table): wire Table.delete() to merge-on-read position deletes#29
abnobdoss wants to merge 3 commits into
feat/mor-pr2-posdelete-writerfrom
feat/mor-pr3-delete-mor

Conversation

@abnobdoss

Copy link
Copy Markdown
Owner

No description provided.

Abanoub Doss added 3 commits June 23, 2026 22:31
When write.delete.mode=merge-on-read on a format-version 2 table,
Transaction.delete(predicate) now produces position deletes (via the
PR2 writer + row-delta producer) instead of warning and falling back to
copy-on-write. Copy-on-write remains the default; merge-on-read is opt-in.

_delete_merge_on_read scans each matched data file's RAW physical rows
(no delete files applied), assigns 0-based positions, applies the
predicate, subtracts positions already covered by existing delete files
(idempotent), and commits one position-delete file per data file as a
single OVERWRITE row-delta snapshot. Data files are never rewritten;
the delete inherits the new snapshot sequence number so it cannot apply
to data appended afterward. Non-v2 tables under merge-on-read still warn
and fall back to copy-on-write.
@abnobdoss abnobdoss closed this Jun 25, 2026
@abnobdoss abnobdoss reopened this Jun 25, 2026
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.

1 participant