talatuyarer commented on code in PR #14264:
URL: https://github.com/apache/iceberg/pull/14264#discussion_r2483123777
##########
core/src/main/java/org/apache/iceberg/BaseIncrementalChangelogScan.java:
##########
@@ -71,6 +82,14 @@ protected CloseableIterable<ChangelogScanTask> doPlanFiles(
.filter(manifest ->
changelogSnapshotIds.contains(manifest.snapshotId()))
.toSet();
+ // Build per-snapshot delete file indexes for added deletes
+ Map<Long, DeleteFileIndex> addedDeletesBySnapshot =
buildAddedDeleteIndexes(changelogSnapshots);
+
+ // Build delete file index for existing deletes (before the start
snapshot) if we have
+ // EQUALITY_DELETES files in the changelog range
+ DeleteFileIndex existingDeleteIndex =
+ buildExistingDeleteIndex(fromSnapshotIdExclusive,
addedDeletesBySnapshot);
Review Comment:
@danielcweeks I've updated the unit tests and I believe I've covered all
possible scenarios. Please let me know if you see any missing one.
@pvary The spec describes how position deletes work but does not forbid
multiple deletes for the same position. Multiple position delete files can
apply to the same data file, and When reading, all applicable position delete
files are merged and positions are treated as a set - deleting the same
position multiple times is idempotent.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]