Jianhui Dong created FLINK-25273:
------------------------------------

             Summary: Some doubts about the FLINK-22848
                 Key: FLINK-25273
                 URL: https://issues.apache.org/jira/browse/FLINK-25273
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / API
            Reporter: Jianhui Dong


I have been in contact with Flink and Calcite for a while, and I have some 
questions about this issue: https://issues.apache.org/jira/browse/FLINK-22848.
First of all, the discussion about this issue mentioned that since calcite did 
not support the syntax analysis of set a=b (without quotes), regular 
expressions were used. However, I checked the commit history some days ago, and 
I found that calcite should already support SET syntax parsing (see 
SqlSetOption) in v1.14 or even earlier. but its problem is that it would 
recognize the `true/false/unknown/null` tokens as keywords, causing the parsing 
to be worse than expected, but this problem can be solved by restricting the 
syntax, like use '' in the issue FLINK-22848.
Then I investigated the earliest version of flink that introduced calcite, 
flink should have introduced Calcite 1.16 in 1.5 at the earliest version. At 
that time, calcite should already support the syntax of SET a=b (without 
quotes), so I would like to find out What exactly does the "not supported" 
mentioned in the issue FLINK-22848 means? Maybe you can give a more specific 
case.
In addition, I also have some doubts about the results of the discussion of the 
issue. I think it is indeed a more elegant solution to use the SQL parser to 
analyze it, but When calcite has built-in support for SET grammar, why do we 
need to extend the SET grammar to re-support it? Even this change may cause 
backward-incompatible.
In my personal opinion of view, is that we can solve this problem by adding 
special restrictions on the above tokens on the basis of native Calcite 
analysis, such as in the user manual because values ​​such as `unknown` and 
`null` are meaningless in the production environment. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to