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

[jira] [Updated] (CALCITE-4022) Support evaluate SqlInsert SqlBasicCall.toString()

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

xzh_dz updated CALCITE-4022:
----------------------------
    Summary: Support evaluate SqlInsert SqlBasicCall.toString()  (was: After SqlInsert is traversed by SqlShuttle, SqlBasicCall throws UnsupportedOperationException)

> Support evaluate SqlInsert SqlBasicCall.toString()
> --------------------------------------------------
>
>                 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)