stevenzwu commented on code in PR #7254:
URL: https://github.com/apache/iceberg/pull/7254#discussion_r1154700876
##########
flink/v1.17/flink/src/test/java/org/apache/iceberg/flink/source/TestFlinkTableSource.java:
##########
@@ -445,8 +446,7 @@ public void testFilterPushDownNotInNull() {
String sqlNotInNull = String.format("SELECT * FROM %s WHERE id NOT IN
(1,2,NULL) ", TABLE_NAME);
List<Row> resultGT = sql(sqlNotInNull);
Assert.assertEquals("Should have 0 record", 0, resultGT.size());
- Assert.assertEquals(
- "Should not push down a filter", Expressions.alwaysTrue(),
lastScanEvent.filter());
+ Assert.assertNull("NULL In the not-in statement results in empty result",
lastScanEvent);
Review Comment:
the message doesn't match the assertion. the message seems applicable to the
assertion line above
##########
flink/v1.17/flink/src/test/java/org/apache/iceberg/flink/source/TestFlinkTableSource.java:
##########
@@ -542,14 +542,24 @@ public void testFilterPushDownLike() {
Assert.assertEquals("Should create only one scan", 1, scanEventCount);
Assert.assertEquals(
"Should contain the push down filter", expectedFilter,
lastScanEvent.filter().toString());
+
+ sqlLike = "SELECT * FROM " + TABLE_NAME + " WHERE data LIKE '%%' ";
+ resultLike = sql(sqlLike);
+ Assert.assertEquals("Should have 2 records", 2, resultLike.size());
+ List<Row> expectedRecords =
Review Comment:
add a comment that `%%` won't match the row with null value
##########
flink/v1.17/flink/src/test/java/org/apache/iceberg/flink/source/TestFlinkTableSource.java:
##########
@@ -542,14 +542,24 @@ public void testFilterPushDownLike() {
Assert.assertEquals("Should create only one scan", 1, scanEventCount);
Assert.assertEquals(
"Should contain the push down filter", expectedFilter,
lastScanEvent.filter().toString());
+
+ sqlLike = "SELECT * FROM " + TABLE_NAME + " WHERE data LIKE '%%' ";
+ resultLike = sql(sqlLike);
+ Assert.assertEquals("Should have 2 records", 2, resultLike.size());
+ List<Row> expectedRecords =
+ Lists.newArrayList(Row.of(1, "iceberg", 10.0), Row.of(2, "b", 20.0));
+ assertSameElements(expectedRecords, resultLike);
+ String expectedScan = "not_null(ref(name=\"data\"))";
+ Assert.assertEquals(
+ "Should contain the push down filter", expectedScan,
lastScanEvent.filter().toString());
}
@Test
public void testFilterNotPushDownLike() {
Row expectRecord = Row.of(1, "iceberg", 10.0);
String sqlNoPushDown = "SELECT * FROM " + TABLE_NAME + " WHERE data LIKE
'%%i' ";
List<Row> resultLike = sql(sqlNoPushDown);
- Assert.assertEquals("Should have 1 record", 0, resultLike.size());
+ Assert.assertEquals("Should have 0 record", 0, resultLike.size());
Review Comment:
why is this query match zero rows now?
##########
flink/v1.17/flink/src/test/java/org/apache/iceberg/flink/source/TestFlinkTableSource.java:
##########
@@ -542,14 +542,24 @@ public void testFilterPushDownLike() {
Assert.assertEquals("Should create only one scan", 1, scanEventCount);
Assert.assertEquals(
"Should contain the push down filter", expectedFilter,
lastScanEvent.filter().toString());
+
+ sqlLike = "SELECT * FROM " + TABLE_NAME + " WHERE data LIKE '%%' ";
Review Comment:
we should move this to a separate test method
--
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]