Background
Incremental changelog scanning was added in #1883 to mirror Java's newIncrementalChangelogScan() API.
The first implementation handles file-level changes from data manifests. This issue tracks delete-file-backed row changes and keeps the related work together.
Current status: file-level changelog planning is implemented in #1883. Snapshots with delete manifests are still rejected.
Implemented
Planned
Implementation notes
- The normal scan path removes deleted rows while reading. A changelog scan needs to emit rows removed by the current snapshot.
- A deleted data file must be read with delete files that existed before the file was removed.
- A row-level delete needs to distinguish delete files added by the current snapshot from delete files that were already present.
- The task shape should follow Java's
AddedRowsScanTask, DeletedDataFileScanTask, and DeletedRowsScanTask, with Go naming.
- Position-delete, equality-delete, and deletion-vector readers already exist in the table scan and inspection paths. This work should reuse them where possible.
- Remote planning can remain unsupported initially.
Related work
References
Background
Incremental changelog scanning was added in #1883 to mirror Java's
newIncrementalChangelogScan()API.The first implementation handles file-level changes from data manifests. This issue tracks delete-file-backed row changes and keeps the related work together.
Current status: file-level changelog planning is implemented in #1883. Snapshots with delete manifests are still rejected.
Implemented
Table.NewIncrementalChangelogScanINSERTtasks for added data filesDELETEtasks for removed data filesPlanned
Implementation notes
AddedRowsScanTask,DeletedDataFileScanTask, andDeletedRowsScanTask, with Go naming.Related work
References