YesOrNo828 opened a new pull request, #5585:
URL: https://github.com/apache/kyuubi/pull/5585

   <!--
   Thanks for sending a pull request!
   
   Here are some tips for you:
     1. If this is your first time, please read our contributor guidelines: 
https://kyuubi.readthedocs.io/en/latest/community/CONTRIBUTING.html
     2. If the PR is related to an issue in 
https://github.com/apache/kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, 
e.g., '[KYUUBI #XXXX] Your PR title ...'.
     3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., 
'[WIP][KYUUBI #XXXX] Your PR title ...'.
   -->
   
   ### _Why are the changes needed?_
   <!--
   Please clarify why the changes are needed. For instance,
     1. If you add a feature, you can talk about the use case of it.
     2. If you fix a bug, you can clarify why it is a bug.
   -->
   resolve: #5505 
   
   Show available commands when users type 'HELP;' in the beeline.
   
   #### Solution:
   
   - Using `ExtendedParser` parse statement and return Operation of Flink 
engine.
   - Check whether the operation is HelpOperation or not.  
   - dependency on `flink-table-planner-loader.jar`.
   
   #### **Why not using Flink SQL Client Parser(SqlCommandParserImpl) to obtain 
the Command enum?**
   Flink 1.16's approach:
   ```
   val opt:Optional[Operation] = 
org.apache.flink.table.client.cli.SqlCommandParserImpl.parseCommand()
   check opt.get() instance of HelpOperation or not
   if yes return CliStrings.MESSAGE_HELP
   ```
   
   Flink 1.17 & 1.18
   ```
   val opt: Optional[Command] = 
org.apache.flink.table.client.cli.parser.SqlCommandParserImpl.parseStatement()
   check opt.get() is Command.HELP or not
   if yes return CliStrings.MESSAGE_HELP
   ```
   
   The `Command` class is added from Flink1.17;
   The `SqlCommandParserImpl` package is changed, and the method name is 
changed from Flink1.17;
   
   This approach requires distinguishing between different Flink versions and 
maintaining both implementations.
   It's more complicated, so abandoned.
   
   
   ### _How was this patch tested?_
   - [ ] Add some test cases that check the changes thoroughly including 
negative and positive cases if possible
   
   - [ ] Add screenshots for manual tests if appropriate
   
   - [ ] [Run 
test](https://kyuubi.readthedocs.io/en/master/contributing/code/testing.html#running-tests)
 locally before make a pull request
   
   
   ### _Was this patch authored or co-authored using generative AI tooling?_
   <!--
   If a generative AI tooling has been used in the process of authoring this 
patch, please include
   phrase 'Generated-by: ' followed by the name of the tool and its version.
   If no, write 'No'.
   Please refer to the [ASF Generative Tooling 
Guidance](https://www.apache.org/legal/generative-tooling.html) for details.
   -->
   


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

Reply via email to