You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (JIRA)" <ji...@apache.org> on 2019/04/30 12:50:00 UTC

[jira] [Resolved] (CALCITE-3030) SqlParseException when using component identifier for setting in merge statements

     [ https://issues.apache.org/jira/browse/CALCITE-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stamatis Zampetakis resolved CALCITE-3030.
------------------------------------------
       Resolution: Fixed
    Fix Version/s: 1.20.0

Fixed in [e3a69708df55cf05bbe38f8f1d5bd472cf8de81f|https://github.com/apache/calcite/commit/e3a69708df55cf05bbe38f8f1d5bd472cf8de81f]. Thanks a lot [~danny0405] for such a quick reaction;)

> SqlParseException when using component identifier for setting in merge statements
> ---------------------------------------------------------------------------------
>
>                 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
>            Assignee: Danny Chan
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.20.0
>
>         Attachments: WX20190428-204058@2x.png
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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)