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)