jnh5y commented on code in PR #21133:
URL: https://github.com/apache/flink/pull/21133#discussion_r1021817966
##########
flink-table/flink-sql-gateway/src/test/java/org/apache/flink/table/gateway/service/SqlGatewayServiceITCase.java:
##########
@@ -157,6 +169,80 @@ public void testOpenSessionWithEnvironment() throws
Exception {
assertThat(tableEnv.listModules()).contains(moduleName);
}
+ @Test
+ public void testConfigureSessionWithLegalStatement(@TempDir
java.nio.file.Path tmpDir)
+ throws Exception {
+ SessionHandle sessionHandle =
service.openSession(defaultSessionEnvironment);
+
+ // SET & RESET
+ verifyConfigureSession(sessionHandle, "SET 'key1' = 'value1';");
+ Map<String, String> config = new HashMap<>();
+ config.put("key1", "value1");
+
assertThat(service.getSessionConfig(sessionHandle)).containsAllEntriesOf(config);
+
+ verifyConfigureSession(sessionHandle, "RESET 'key1';");
+
assertThat(service.getSessionConfig(sessionHandle)).doesNotContainEntry("key1",
"value1");
+
+ // CREATE & USE & ALTER & DROP
+ verifyConfigureSession(
+ sessionHandle,
+ "CREATE CATALOG mycat with ('type' = 'generic_in_memory',
'default-database' = 'db');");
+
+ verifyConfigureSession(sessionHandle, "USE CATALOG mycat;");
+
assertThat(service.getCurrentCatalog(sessionHandle)).isEqualTo("mycat");
+
+ verifyConfigureSession(
+ sessionHandle, "CREATE TABLE db.tbl (score INT) WITH
('connector' = 'datagen');");
+
+ Set<TableKind> tableKinds = new HashSet<>();
+ tableKinds.add(TableKind.TABLE);
+ assertThat(service.listTables(sessionHandle, "mycat", "db",
tableKinds))
+ .contains(
+ new TableInfo(ObjectIdentifier.of("mycat", "db",
"tbl"), TableKind.TABLE));
+
+ verifyConfigureSession(sessionHandle, "ALTER TABLE db.tbl RENAME TO
tbl1;");
+ assertThat(service.listTables(sessionHandle, "mycat", "db",
tableKinds))
+ .doesNotContain(
+ new TableInfo(ObjectIdentifier.of("mycat", "db",
"tbl"), TableKind.TABLE))
+ .contains(
+ new TableInfo(ObjectIdentifier.of("mycat", "db",
"tbl1"), TableKind.TABLE));
+
+ service.configureSession(sessionHandle, "USE CATALOG
default_catalog;", 0);
+ verifyConfigureSession(sessionHandle, "DROP CATALOG mycat;");
+
assertThat(service.listCatalogs(sessionHandle)).doesNotContain("mycat");
+
+ // LOAD & UNLOAD MODULE
+ verifyConfigureSession(sessionHandle, "LOAD MODULE dummy;");
+
+ TableEnvironmentInternal tableEnv =
+
service.getSession(sessionHandle).createExecutor().getTableEnvironment();
+ assertThat(
+ CollectionUtil.iteratorToList(
+ tableEnv.executeSql("SHOW FULL
MODULES;").collect()))
+ .contains(Row.of("dummy", true));
+
+ verifyConfigureSession(sessionHandle, "UNLOAD MODULE dummy;");
+ assertThat(
+ CollectionUtil.iteratorToList(
+ tableEnv.executeSql("SHOW FULL
MODULES;").collect()))
+ .isEqualTo(Collections.singletonList(Row.of("core", true)));
+
+ // ADD JAR
+ String udfClassName = GENERATED_LOWER_UDF_CLASS + new
Random().nextInt(50);
+ String jarPath =
+ UserClassLoaderJarTestUtils.createJarFile(
+ new File(tmpDir.toUri()),
+ "test-add-jar.jar",
+ udfClassName,
+ String.format(GENERATED_LOWER_UDF_CODE,
udfClassName))
+ .toURI()
+ .toString();
+ verifyConfigureSession(sessionHandle, String.format("ADD JAR '%s';",
jarPath));
+
+ assertThat(CollectionUtil.iteratorToList(tableEnv.executeSql("SHOW
JARS;").collect()))
+ .isEqualTo(Collections.singletonList(Row.of(new
Path(jarPath).getPath())));
Review Comment:
Assuming that `REMOVE JAR` is added above, it'd be make sense to remove the
jar here.
--
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]