So, the PR is done <https://github.com/apache/calcite/pull/2936>.
Le mar. 11 oct. 2022 à 11:09, Christophe Le Saëc <[email protected]> a écrit : > I made this JIRA <https://issues.apache.org/jira/browse/CALCITE-5326> > with as details as possible. > > Le lun. 10 oct. 2022 à 14:45, Benchao Li <[email protected]> a écrit : > >> Christophe, >> >> Thanks for reaching out. This might be a bug, please log a Jira issue. >> >> Recently there are several issues[1][2][3] which we found that some places >> are adding >> redundant parentheses which are not necessary. We firstly only treated >> these issues >> are improvements, but we found that some of them are not correct in some >> SQL dialects, >> your case might be one of them. >> >> [1] https://issues.apache.org/jira/browse/CALCITE-5299 >> [2] https://issues.apache.org/jira/browse/CALCITE-5265 >> [3] https://issues.apache.org/jira/browse/CALCITE-5252 >> >> Christophe Le Saëc <[email protected]> 于2022年10月10日周一 16:24写道: >> >> > According to Sql Merge definition >> > <https://en.wikipedia.org/wiki/Merge_(SQL)> (at least on wikipedia), >> the >> > insert part is a classical insert statement : >> > >> > WHEN NOT MATCHED THEN INSERT (column1 [, column2 ...]) VALUES >> > (value1 [, value2 ...]); >> > >> > The SqlMerge class, on toSqlString; add extra parenthesis before VALUES >> > >> > INSERT (column1 [, column2 ...]) *(*VALUES (value1 [, value2 ...])*)* >> > >> > And it's confirm by unit test >> > < >> > >> https://github.com/apache/calcite/blob/main/testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserTest.java#L4651-L4652 >> > > >> > >> > Which expect >> > >> > + "WHEN NOT MATCHED THEN INSERT (`NAME`, `DEPT`, `SALARY`) " >> > >> > + "(VALUES (ROW(`T`.`NAME`, 10, (`T`.`SALARY` * 0.15))))"; >> > >> > When i try to run thus kind of generated MERGE statement with >> H2SqlDialect, >> > it does not work (*JdbcSQLSyntaxErrorException: Syntax error in SQL >> > statement*) until i remove this extra parenthesis manually (on step by >> step >> > debug). >> > As i'm a newbie at calcite, i don't know if it's me who using calcite >> > wrongly or if it's a bug ? >> > >> > Regards, >> > Christophe. >> > >> >> >> -- >> >> Best, >> Benchao Li >> >
