amogh-jahagirdar commented on code in PR #11261:
URL: https://github.com/apache/iceberg/pull/11261#discussion_r1797529748
##########
spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestDelete.java:
##########
@@ -1401,6 +1401,22 @@ public void
testDeleteToCustomWapBranchWithoutWhereClause() throws NoSuchTableEx
});
}
+ @TestTemplate
+ public void testDeleteWithFilterOnNestedColumn() {
+ createAndInitNestedColumnsTable();
+
+ sql("INSERT INTO TABLE %s VALUES (1, named_struct(\"c1\", 3, \"c2\",
\"v1\"))", tableName);
+ sql("INSERT INTO TABLE %s VALUES (2, named_struct(\"c1\", 2, \"c2\",
\"v2\"))", tableName);
+
+ sql("DELETE FROM %s WHERE complex.c1 = 3", tableName);
+ assertEquals(
+ "Should have expected rows", ImmutableList.of(row(2)), sql("SELECT id
FROM %s", tableName));
+
+ sql("DELETE FROM %s t WHERE t.complex.c1 = 2", tableName);
+ assertEquals(
+ "Should have expected rows", ImmutableList.of(), sql("SELECT id FROM
%s", tableName));
Review Comment:
Could we add a case where the filter results in nothing being deleted?
##########
api/src/test/java/org/apache/iceberg/expressions/TestStrictMetricsEvaluator.java:
##########
@@ -627,4 +638,47 @@ public void testIntegerNotIn() {
shouldRead = new StrictMetricsEvaluator(SCHEMA, notIn("no_nulls", "abc",
"def")).eval(FILE);
assertThat(shouldRead).as("Should not match: no_nulls field does not have
bounds").isFalse();
}
+
+ @Test
+ public void testEvaluateOnNestedColumns() {
+ boolean shouldRead =
+ new StrictMetricsEvaluator(
+ SCHEMA, greaterThanOrEqual("struct.nested_col_no_stats",
INT_MIN_VALUE))
+ .eval(FILE);
+ assertThat(shouldRead).as("Should not match: nested column").isFalse();
+
+ shouldRead =
+ new StrictMetricsEvaluator(
+ SCHEMA, lessThanOrEqual("struct.nested_col_no_stats",
INT_MAX_VALUE))
+ .eval(FILE);
+ assertThat(shouldRead).as("Should not match: nested column").isFalse();
+
+ shouldRead =
+ new StrictMetricsEvaluator(SCHEMA,
isNull("struct.nested_col_no_stats")).eval(FILE);
+ assertThat(shouldRead).as("Should not match: nested column").isFalse();
+
+ shouldRead =
Review Comment:
Is it possible to separate these into 2 test methods, one for no stats and
the other with stats? Could we also update the messages to be more precise,
instead of just "Should not match: nested column", I think "isNull nested
column should not match"
--
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]