From 394135de41d3e5f76884679e113cccde84837a02 Mon Sep 17 00:00:00 2001 From: yangshangqing95 Date: Tue, 18 Aug 2026 16:00:39 -0400 Subject: [PATCH] Core: Add all manifests over-pruning test --- .../iceberg/TestMetadataTableScans.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/src/test/java/org/apache/iceberg/TestMetadataTableScans.java b/core/src/test/java/org/apache/iceberg/TestMetadataTableScans.java index ded6dd643d97..ec08e949fbf4 100644 --- a/core/src/test/java/org/apache/iceberg/TestMetadataTableScans.java +++ b/core/src/test/java/org/apache/iceberg/TestMetadataTableScans.java @@ -509,6 +509,25 @@ public void allManifestsTablePreservesSnapshotPruningWhenIgnoringResiduals() thr validateTaskScanResiduals(scan, true); } + @TestTemplate + public void allManifestsTableDoesNotOverPruneWhenIgnoringResiduals() throws IOException { + // Snapshots 1,2,3,4 + preparePartitionedTableData(); + + Table allManifestsTable = new AllManifestsTable(table); + TableScan scan = + allManifestsTable + .newScan() + .filter(Expressions.equal("content", ManifestContent.DELETES.id())) + .ignoreResiduals(); + + assertThat(scannedPaths(scan)) + .as("A non-snapshot filter must not prune snapshots when residuals are ignored") + .isEqualTo(expectedManifestListPaths(table.snapshots(), 1L, 2L, 3L, 4L)); + + validateTaskScanResiduals(scan, true); + } + @TestTemplate public void allManifestsTableNegatedPredicateOnNonSnapshotColumn() { // Snapshots 1,2,3,4