[ 
https://issues.apache.org/jira/browse/CALCITE-4022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17120208#comment-17120208
 ] 

xzh_dz commented on CALCITE-4022:
---------------------------------

[~jinxing6...@126.com] Thanks,I updated JIRA description.

> After SqlInsert is traversed by SqlShuttle, SqlBasicCall throws 
> UnsupportedOperationException
> ---------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4022
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4022
>             Project: Calcite
>          Issue Type: Wish
>            Reporter: xzh_dz
>            Priority: Major
>         Attachments: image-2020-05-25-17-38-36-009.png
>
>
> 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