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