You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "cwb (Jira)" <ji...@apache.org> on 2022/04/28 07:13:00 UTC

[jira] [Created] (CALCITE-5122) failed to convert update relnode to sqlnode

cwb created CALCITE-5122:
----------------------------

             Summary: failed to convert update relnode to sqlnode
                 Key: CALCITE-5122
                 URL: https://issues.apache.org/jira/browse/CALCITE-5122
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.30.0
            Reporter: cwb


code:

String sqlUpdate="update mysql2.user_info_2 a set name = (select account_name from mysql2.account_info b  where b.account_id=a.id )";
RelToSqlConverter relToSqlConverter = new RelToSqlConverter(AnsiSqlDialect.DEFAULT);
            SqlImplementor.Result visit;
            SqlNode sqlNodeTarget;
            String targetSql;
            sqlNode = planner.parse(sqlUpdate);
            planner.validate(sqlNode);
            relRoot = planner.rel(sqlNode);
            visit = relToSqlConverter.visitRoot(relRoot.rel);
            sqlNodeTarget = visit.asStatement();
            targetSql=sqlNodeTarget.toSqlString(MysqlSqlDialect.DEFAULT).getSql();

error: (in public Result visit(TableModify modify)  )

Exception in thread "main" java.lang.AssertionError: field ordinal 0 out of range {}
    at org.apache.calcite.rel.rel2sql.SqlImplementor$AliasContext.field(SqlImplementor.java:1531)
    at org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:630)
    at org.apache.calcite.rel.rel2sql.RelToSqlConverter.lambda$12(RelToSqlConverter.java:1066)
    at org.apache.calcite.util.Util$TransformingList.get(Util.java:2783)
    at java.util.AbstractList$Itr.next(AbstractList.java:358)
    at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
    at java.util.ArrayList.<init>(ArrayList.java:178)
    at org.apache.calcite.sql.SqlNodeList.<init>(SqlNodeList.java:98)
    at org.apache.calcite.rel.rel2sql.RelToSqlConverter.exprList(RelToSqlConverter.java:1065)
    at org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:1038)



--
This message was sent by Atlassian Jira
(v8.20.7#820007)