You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Andrei Sereda (Jira)" <ji...@apache.org> on 2020/08/22 18:49:03 UTC

[jira] [Closed] (CALCITE-4022) Support unparse special syntax when operator is INSERT

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

Andrei Sereda closed CALCITE-4022.
----------------------------------

Released as part of 1.25 ([68b02dfd4af15bc|https://github.com/apache/calcite/commit/68b02dfd4af15bc94a91a0cd2a30655d04439555])

> Support unparse special syntax when operator is INSERT
> ------------------------------------------------------
>
>                 Key: CALCITE-4022
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4022
>             Project: Calcite
>          Issue Type: Wish
>          Components: core
>            Reporter: xzh_dz
>            Assignee: Wang Yanlin
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.25.0
>
>         Attachments: image-2020-05-25-17-38-36-009.png
>
>          Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> This exception can be reproduced as below:
> SqlParserTest:
> {code:java}
>  @Test void test() throws Exception {
>     final String sql = "insert into emps select * from emps";
>     final SqlNode sqlNode = getSqlParser(sql).parseStmt();
>     final SqlNode sqlNodeVisited = sqlNode.accept(new SqlShuttle() {
>       @Override public SqlNode visit(SqlIdentifier identifier) {
>         return new SqlIdentifier(identifier.names,
>             identifier.getParserPosition());
>       }
>     });
>     System.out.println(sqlNodeVisited.toString());
>   }
> {code}
>  !image-2020-05-25-17-38-36-009.png! 
> Method threw 'java.lang.UnsupportedOperationException' exception. Cannot evaluate org.apache.calcite.sql.SqlBasicCall.toString()
> SqlInsert is a SqlSpecialOperator, when `toString` method is called, this problem is shown.We can see that `SqlSyntax#SPECIAL#unparse()` hasn't been implemented yet.
> exception :
> java.lang.UnsupportedOperationException: class org.apache.calcite.sql.SqlSyntax$6: SPECIAL
> 	at org.apache.calcite.util.Util.needToImplement(Util.java:967)
> 	at org.apache.calcite.sql.SqlSyntax$6.unparse(SqlSyntax.java:116)
> 	at org.apache.calcite.sql.SqlOperator.unparse(SqlOperator.java:333)
> 	at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:462)
> 	at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:104)
> 	at org.apache.calcite.sql.SqlNode.toSqlString(SqlNode.java:151)
> 	at org.apache.calcite.sql.SqlNode.toString(SqlNode.java:126)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)