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

Danny Chen resolved CALCITE-4022.
---------------------------------
    Fix Version/s: 1.25.0
       Resolution: Fixed

Fixed in 
[8a459d9|https://github.com/apache/calcite/commit/8a459d9b17a9403e4e1539ea1c3c8d8f39e30a12],
 thanks for the PR, [~xzh_dz] !

> 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
>            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)

Reply via email to