You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by bl...@apache.org on 2019/11/11 21:25:20 UTC
[flink] branch master updated: [FLINK-14660][sql cli] add 'SHOW
MODULES' to SQL CLI
This is an automated email from the ASF dual-hosted git repository.
bli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 658cea3 [FLINK-14660][sql cli] add 'SHOW MODULES' to SQL CLI
658cea3 is described below
commit 658cea39b120bf39992c5216a03641d7e60ae581
Author: bowen.li <bo...@gmail.com>
AuthorDate: Fri Nov 8 15:22:05 2019 -0800
[FLINK-14660][sql cli] add 'SHOW MODULES' to SQL CLI
This closes #10140.
---
.../org/apache/flink/table/client/cli/CliClient.java | 20 ++++++++++++++++++++
.../flink/table/client/cli/SqlCommandParser.java | 4 ++++
.../apache/flink/table/client/gateway/Executor.java | 5 +++++
.../table/client/gateway/local/LocalExecutor.java | 9 +++++++++
.../apache/flink/table/client/cli/CliClientTest.java | 5 +++++
.../flink/table/client/cli/CliResultViewTest.java | 5 +++++
6 files changed, 48 insertions(+)
diff --git a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliClient.java b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliClient.java
index e956039..72a626b 100644
--- a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliClient.java
+++ b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliClient.java
@@ -276,6 +276,9 @@ public class CliClient {
case SHOW_FUNCTIONS:
callShowFunctions();
break;
+ case SHOW_MODULES:
+ callShowModules();
+ break;
case USE_CATALOG:
callUseCatalog(cmdCall);
break;
@@ -421,6 +424,23 @@ public class CliClient {
terminal.flush();
}
+ private void callShowModules() {
+ final List<String> modules;
+ try {
+ modules = executor.listModules(context);
+ } catch (SqlExecutionException e) {
+ printExecutionException(e);
+ return;
+ }
+ if (modules.isEmpty()) {
+ terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_EMPTY).toAnsi());
+ } else {
+ // modules are already in the loaded order
+ modules.forEach((v) -> terminal.writer().println(v));
+ }
+ terminal.flush();
+ }
+
private void callUseCatalog(SqlCommandCall cmdCall) {
try {
executor.useCatalog(context, cmdCall.operands[0]);
diff --git a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/SqlCommandParser.java b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/SqlCommandParser.java
index d4026d7..363f8f5 100644
--- a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/SqlCommandParser.java
+++ b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/SqlCommandParser.java
@@ -99,6 +99,10 @@ public final class SqlCommandParser {
"SHOW\\s+FUNCTIONS",
NO_OPERANDS),
+ SHOW_MODULES(
+ "SHOW\\s+MODULES",
+ NO_OPERANDS),
+
USE_CATALOG(
"USE\\s+CATALOG\\s+(.*)",
SINGLE_OPERAND),
diff --git a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/Executor.java b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/Executor.java
index 1ad24e4..d0c4437 100644
--- a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/Executor.java
+++ b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/Executor.java
@@ -66,6 +66,11 @@ public interface Executor {
List<String> listFunctions(SessionContext session) throws SqlExecutionException;
/**
+ * Lists all modules known to the executor in their loaded order.
+ */
+ List<String> listModules(SessionContext session) throws SqlExecutionException;
+
+ /**
* Sets a catalog with given name as the current catalog.
*/
void useCatalog(SessionContext session, String catalogName) throws SqlExecutionException;
diff --git a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/LocalExecutor.java b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/LocalExecutor.java
index f616636..9a90b5e 100644
--- a/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/LocalExecutor.java
+++ b/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/LocalExecutor.java
@@ -249,6 +249,15 @@ public class LocalExecutor implements Executor {
}
@Override
+ public List<String> listModules(SessionContext session) throws SqlExecutionException {
+ final ExecutionContext<?> context = getOrCreateExecutionContext(session);
+ final TableEnvironment tableEnv = context
+ .createEnvironmentInstance()
+ .getTableEnvironment();
+ return context.wrapClassLoader(() -> Arrays.asList(tableEnv.listModules()));
+ }
+
+ @Override
public void useCatalog(SessionContext session, String catalogName) throws SqlExecutionException {
final ExecutionContext<?> context = getOrCreateExecutionContext(session);
final TableEnvironment tableEnv = context
diff --git a/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliClientTest.java b/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliClientTest.java
index ec466e3..a3c74d3 100644
--- a/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliClientTest.java
+++ b/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliClientTest.java
@@ -238,6 +238,11 @@ public class CliClientTest extends TestLogger {
}
@Override
+ public List<String> listModules(SessionContext session) throws SqlExecutionException {
+ return null;
+ }
+
+ @Override
public void useCatalog(SessionContext session, String catalogName) throws SqlExecutionException {
}
diff --git a/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliResultViewTest.java b/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliResultViewTest.java
index 8eff36a..e49874a 100644
--- a/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliResultViewTest.java
+++ b/flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/CliResultViewTest.java
@@ -151,6 +151,11 @@ public class CliResultViewTest {
}
@Override
+ public List<String> listModules(SessionContext session) throws SqlExecutionException {
+ return null;
+ }
+
+ @Override
public void useCatalog(SessionContext session, String catalogName) throws SqlExecutionException {
}