[ https://issues.apache.org/jira/browse/CALCITE-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16827983#comment-16827983 ]
yuqi commented on CALCITE-3030: ------------------------------- [~wzqiang1332], There seems a bug in calcite !wx20190428-204...@2x.png! The problem is that calcite only accpet simple identifier in this sentence. [~zhanghe] > merge sql problem > ----------------- > > Key: CALCITE-3030 > URL: https://issues.apache.org/jira/browse/CALCITE-3030 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.19.0 > Environment: OS: win10 (17763) > JDK: 1.7 > Reporter: wuzq > Priority: Major > Fix For: next > > Attachments: wx20190428-204...@2x.png > > > The update section of "merge SQL" reports an error when using an alias > {code:java} > // if i replace red code with "b = '123456'", I don't get an error > String sql = "merge into xxx as t1 using yyy as t2 on t1.a = t2.a when > matched then update set t1.b = '123456'" ; > SqlParser.ConfigBuilder configBuilder = SqlParser.configBuilder(); > configBuilder.setCaseSensitive(false); > SqlParser.Config config = configBuilder.build(); > SqlParser parser = SqlParser.create(sql, config); > SqlNode node = parser.parseQuery(); > {code} > the error > {code:java} > //代码占位符 > Exception in thread "main" org.apache.calcite.sql.parser.SqlParseException: > Encountered "." at line 1, column 84. > Was expecting: > "=" ... > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserImpl.java:355) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParserImpl.java:143) > at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:156) > at com.yatop.Calcite.main(Calcite.java:39) > Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered "." > at line 1, column 84. > Was expecting: > "=" ... > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.generateParseException(SqlParserImpl.java:25299) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.jj_consume_token(SqlParserImpl.java:25116) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.WhenMatchedClause(SqlParserImpl.java:1414) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlMerge(SqlParserImpl.java:1383) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmt(SqlParserImpl.java:861) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmtEof(SqlParserImpl.java:877) > at > org.apache.calcite.sql.parser.impl.SqlParserImpl.parseSqlStmtEof(SqlParserImpl.java:199) > at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:148) > ... 1 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)