JingsongLi commented on code in PR #87:
URL: https://github.com/apache/flink-table-store/pull/87#discussion_r849389908


##########
flink-table-store-connector/src/test/java/org/apache/flink/table/store/connector/ReadWriteTableITCase.java:
##########
@@ -1224,6 +1236,175 @@ public void testQueryContainsDefaultFieldName() throws 
Exception {
                 .containsOnly(changelogRow("+I", 1, "abc"));
     }
 
+    @Test
+    public void testLike() throws Exception {
+        rootPath = TEMPORARY_FOLDER.newFolder().getPath();
+        tEnv = StreamTableEnvironment.create(buildBatchEnv(), 
EnvironmentSettings.inBatchMode());
+        List<Row> input =
+                Arrays.asList(
+                        changelogRow("+I", 1, "test_1"),
+                        changelogRow("+I", 2, "test_2"),
+                        changelogRow("+I", 1, "test_%"),
+                        changelogRow("+I", 2, "test%2"),
+                        changelogRow("+I", 3, "university"),
+                        changelogRow("+I", 4, "very"),
+                        changelogRow("+I", 5, "yield"));
+        String id = registerData(input);
+        UUID randomSourceId = UUID.randomUUID();
+        tEnv.executeSql(
+                String.format(
+                        "create table `helper_source_%s` (f0 int, f1 string) 
with ("
+                                + "'connector' = 'values', "
+                                + "'bounded' = 'true', "
+                                + "'data-id' = '%s')",
+                        randomSourceId, id));
+
+        UUID randomSinkId = UUID.randomUUID();
+        tEnv.executeSql(
+                String.format(
+                        "create table `managed_table_%s` with ("
+                                + "'%s' = '%s'"
+                                + ") like `helper_source_%s` "
+                                + "(excluding options)",
+                        randomSinkId, FileStoreOptions.PATH.key(), rootPath, 
randomSourceId));
+
+        // insert multiple times
+        tEnv.executeSql(
+                        String.format(
+                                "insert into `managed_table_%s` select * from 
`helper_source_%s`",
+                                randomSinkId, randomSourceId))
+                .await();
+
+        tEnv.executeSql(
+                        String.format(
+                                "insert into `managed_table_%s` values (7, 
'villa'), (8, 'tests'), (20, 'test_123')",
+                                randomSinkId))
+                .await();
+
+        tEnv.executeSql(
+                        "insert into `managed_table_"
+                                + randomSinkId
+                                + "` values (9, 'valley'), (10, 'tested'), 
(100, 'test%fff')")
+                .await();
+
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 like 'test%'",
+                Arrays.asList(
+                        changelogRow("+I", 1, "test_1"),
+                        changelogRow("+I", 2, "test_2"),
+                        changelogRow("+I", 1, "test_%"),
+                        changelogRow("+I", 2, "test%2"),
+                        changelogRow("+I", 8, "tests"),
+                        changelogRow("+I", 10, "tested"),
+                        changelogRow("+I", 20, "test_123")));
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 like 'v%'",
+                Arrays.asList(
+                        changelogRow("+I", 4, "very"),
+                        changelogRow("+I", 7, "villa"),
+                        changelogRow("+I", 9, "valley")));
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 like 'test=_%' escape '='",
+                Arrays.asList(
+                        changelogRow("+I", 1, "test_1"),
+                        changelogRow("+I", 2, "test_2"),
+                        changelogRow("+I", 1, "test_%"),
+                        changelogRow("+I", 20, "test_123")));
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 like 'test=__' escape '='",
+                Arrays.asList(
+                        changelogRow("+I", 1, "test_1"),
+                        changelogRow("+I", 2, "test_2"),
+                        changelogRow("+I", 1, "test_%")));
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 like 'test$%%' escape '$'",
+                Arrays.asList(
+                        changelogRow("+I", 2, "test%2"), changelogRow("+I", 
100, "test%fff")));
+    }
+
+    @Test
+    public void testIn() throws Exception {
+        rootPath = TEMPORARY_FOLDER.newFolder().getPath();
+        tEnv = StreamTableEnvironment.create(buildBatchEnv(), 
EnvironmentSettings.inBatchMode());
+        List<Row> input =
+                Arrays.asList(
+                        changelogRow("+I", 1, "aaa"),
+                        changelogRow("+I", 2, "bbb"),
+                        changelogRow("+I", 3, "ccc"),
+                        changelogRow("+I", 4, "ddd"),
+                        changelogRow("+I", 5, "eee"),
+                        changelogRow("+I", 6, "aaa"),
+                        changelogRow("+I", 7, "bbb"),
+                        changelogRow("+I", 8, "ccc"),
+                        changelogRow("+I", 9, "ddd"),
+                        changelogRow("+I", 10, "eee"),
+                        changelogRow("+I", 11, "aaa"),
+                        changelogRow("+I", 12, "bbb"),
+                        changelogRow("+I", 13, "ccc"),
+                        changelogRow("+I", 14, "ddd"),
+                        changelogRow("+I", 15, "eee"),
+                        changelogRow("+I", 16, "aaa"),
+                        changelogRow("+I", 17, "bbb"),
+                        changelogRow("+I", 18, "ccc"),
+                        changelogRow("+I", 19, "ddd"),
+                        changelogRow("+I", 20, "eee"),
+                        changelogRow("+I", 21, "fff"));
+
+        String id = registerData(input);
+        UUID randomSourceId = UUID.randomUUID();
+        tEnv.executeSql(
+                String.format(
+                        "create table `helper_source_%s` (f0 int, f1 string) 
with ("
+                                + "'connector' = 'values', "
+                                + "'bounded' = 'true', "
+                                + "'data-id' = '%s')",
+                        randomSourceId, id));
+
+        UUID randomSinkId = UUID.randomUUID();
+        tEnv.executeSql(
+                String.format(
+                        "create table `managed_table_%s` with ("
+                                + "'%s' = '%s'"
+                                + ") like `helper_source_%s` "
+                                + "(excluding options)",
+                        randomSinkId, FileStoreOptions.PATH.key(), rootPath, 
randomSourceId));
+        tEnv.executeSql(
+                        String.format(
+                                "insert into `managed_table_%s` select * from 
`helper_source_%s`",
+                                randomSinkId, randomSourceId))
+                .await();
+
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f0 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "
+                        + "11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)",
+                input);
+
+        collectAndCheck(
+                tEnv,
+                "managed_table_" + randomSinkId,
+                Collections.emptyMap(),
+                "f1 in ('aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff')",
+                input);
+    }
+

Review Comment:
   We need a case to test unsupported pushdown filter.



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

Reply via email to