godfrey he created FLINK-18791: ---------------------------------- Summary: Simplify the logic of SqlCommandParser and CliClient Key: FLINK-18791 URL: https://issues.apache.org/jira/browse/FLINK-18791 Project: Flink Issue Type: Improvement Components: Table SQL / Client Reporter: godfrey he Fix For: 1.12.0
Currently, {{SqlCommandParser}} parse a statement to a corresponding {{SqlCommandCall}}, and {{CliClient}} will do different action based on different {{SqlCommandCall}}. However, if a new kind of statement is supported (such as [SHOW CURRENT DDL|https://issues.apache.org/jira/browse/FLINK-18616], [SHOW CREATE TABLE|https://issues.apache.org/jira/browse/FLINK-16384]), we must implement them in planner and at the same time we need to add a new kind of {{SqlCommand}}, add new method in {{CliClient}} to execute the command in sql client. Moreover the implementation may be forgotten in sql client (such as [FLINK-18059|https://issues.apache.org/jira/browse/FLINK-18059]). To improve this, I propose {{SqlCommandParser}} returns {{Operation}}, and {{CliClient}} executes {{Operation}} directly. Meanwhile we can unify the print style of different kind of Operations. After this is finished, we need not to change the sql client if a new kind of statement is supported, only if customized print style is needed. -- This message was sent by Atlassian Jira (v8.3.4#803005)