[
https://issues.apache.org/jira/browse/FLINK-24592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17433499#comment-17433499
]
Sergey Nuyanzin commented on FLINK-24592:
-----------------------------------------
Currently I have a version[1] supported all the mentioned problem queries.
May be a bit description: there is a continuation prompt from jline3 (FlinkSql
depends on it).
I introduced the following logic:
||Prompt||Meaning||
|{{Flink SQL>}}|Ready for a new query|
|{{>}}|Waiting for next line of multiple-line query,
waiting for completion of query with semicolon ({{;}}) |
|{{'>}}|Waiting for next line,
waiting for completion of a string that began with a single quote
({{'}}) |
|{{`>}}|Waiting for next line,
waiting for completion of a string that began with a back tick ({{`}}) |
|{{*\>}} |Waiting for next line,
waiting for completion of a multi-line comment that began with {{/*}}|
| {{)>}} | Waiting for next line,
waiting for completion of a string that began with a round bracket,
{{(}} |
|{{]>}} |Waiting for next line,
waiting for completion of a string that began with a square bracket,
{{[}} |
| {{extra )>}} |There is an extra round bracket {{)}}, that is not opened with
{{(}} |
| {{extra ]>}} |There is an extra square bracket {{]}}, that is not opened with
{{[}} |
Currently dialect related info like sql quote identifiers, one line comment is
hardcoded in constants in {{SqlMultiLineParser}}.
Probably retrieval of dialect related info from the current dialect could be
added as further improvement.
In case there are any other suggestion or feedback - please let me know.
I will try to create a PR this week.
[1] https://github.com/snuyanzin/flink/tree/flinksqlclient
> FlinkSQL multiline parser improvements
> --------------------------------------
>
> Key: FLINK-24592
> URL: https://issues.apache.org/jira/browse/FLINK-24592
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Client
> Reporter: Sergey Nuyanzin
> Priority: Major
>
> Currently existing multiline parser has limitations e.g.
> line could not end with semicolon e.g. as a part of field value, comment or
> column name.
> Also if a query contains '--' e.g. as a part of varchar field value then it
> fails.
> In case there is no objections I would put some efforts to improve this
> behavior;
> here it is a list of sample problem queries
> {code:sql}
> select 123; -- comment
> select 1 as `1--`;
> select '--';
> -- This query works if a user copy-pastes it to FlinkSQL, however it fails if
> a user types it in FlinkSQL
> select '1;
> ';
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)