yangshangqing95 commented on code in PR #17440:
URL: https://github.com/apache/iceberg/pull/17440#discussion_r3693532591


##########
core/src/test/java/org/apache/iceberg/TestEntriesMetadataTable.java:
##########
@@ -152,4 +154,73 @@ public void testEntriesTableWithDeleteManifests() {
         .as("Should contain 1 delete file record")
         .isEqualTo(1);
   }
+
+  @TestTemplate
+  public void testNotEqualRetainsPositionDeleteManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String deleteManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().deleteManifests(table.io())).path();
+
+    Expression filter =
+        Expressions.notEqual("data_file.content", 
FileContent.EQUALITY_DELETES.id());
+
+    assertManifestPlanned(new ManifestEntriesTable(table), filter, 
deleteManifestPath);
+    assertManifestPlanned(new AllEntriesTable(table), filter, 
deleteManifestPath);
+  }
+
+  @TestTemplate
+  public void testNotInRetainsPositionDeleteManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String deleteManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().deleteManifests(table.io())).path();
+
+    Expression filter = Expressions.notIn("data_file.content", 
FileContent.EQUALITY_DELETES.id());
+
+    assertManifestPlanned(new ManifestEntriesTable(table), filter, 
deleteManifestPath);
+    assertManifestPlanned(new AllEntriesTable(table), filter, 
deleteManifestPath);
+  }
+
+  @TestTemplate
+  public void testNotEqualPrunesDataManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String dataManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().dataManifests(table.io())).path();
+
+    Expression filter = Expressions.notEqual("data_file.content", 
FileContent.DATA.id());
+
+    assertManifestNotPlanned(new ManifestEntriesTable(table), filter, 
dataManifestPath);
+  }
+
+  private void assertManifestPlanned(Table metadataTable, Expression filter, 
String manifestPath) {

Review Comment:
   Also fixed typo in TestMetadataTableScans



##########
core/src/test/java/org/apache/iceberg/TestEntriesMetadataTable.java:
##########
@@ -152,4 +154,73 @@ public void testEntriesTableWithDeleteManifests() {
         .as("Should contain 1 delete file record")
         .isEqualTo(1);
   }
+
+  @TestTemplate
+  public void testNotEqualRetainsPositionDeleteManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String deleteManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().deleteManifests(table.io())).path();
+
+    Expression filter =
+        Expressions.notEqual("data_file.content", 
FileContent.EQUALITY_DELETES.id());
+
+    assertManifestPlanned(new ManifestEntriesTable(table), filter, 
deleteManifestPath);
+    assertManifestPlanned(new AllEntriesTable(table), filter, 
deleteManifestPath);
+  }
+
+  @TestTemplate
+  public void testNotInRetainsPositionDeleteManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String deleteManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().deleteManifests(table.io())).path();
+
+    Expression filter = Expressions.notIn("data_file.content", 
FileContent.EQUALITY_DELETES.id());
+
+    assertManifestPlanned(new ManifestEntriesTable(table), filter, 
deleteManifestPath);
+    assertManifestPlanned(new AllEntriesTable(table), filter, 
deleteManifestPath);
+  }
+
+  @TestTemplate
+  public void testNotEqualPrunesDataManifest() {
+    assumeThat(formatVersion).as("Only V2+ tables support 
deletes").isGreaterThanOrEqualTo(2);
+
+    table.newAppend().appendFile(FILE_A).commit();
+    table.newRowDelta().addDeletes(fileADeletes()).commit();
+
+    String dataManifestPath =
+        
Iterables.getOnlyElement(table.currentSnapshot().dataManifests(table.io())).path();
+
+    Expression filter = Expressions.notEqual("data_file.content", 
FileContent.DATA.id());
+
+    assertManifestNotPlanned(new ManifestEntriesTable(table), filter, 
dataManifestPath);

Review Comment:
   tests refined, solved



-- 
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]

Reply via email to