jamie12221 created CALCITE-4093: ----------------------------------- Summary: Unable to translate correlate to SQL Key: CALCITE-4093 URL: https://issues.apache.org/jira/browse/CALCITE-4093 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.23.0 Reporter: jamie12221
Exception: {code:java} Caused by: java.lang.reflect.InvocationTargetExceptionCaused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524) ... 13 moreCaused by: java.lang.RuntimeException: While invoking method 'public org.apache.calcite.rel.rel2sql.SqlImplementor$Result org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(org.apache.calcite.rel.core.Project)' at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:527) at org.apache.calcite.rel.rel2sql.RelToSqlConverter.dispatch(RelToSqlConverter.java:129) at io.mycat.optimizer.Main$1RelToSqlConverter2.dispatch(Main.java:153) at org.apache.calcite.rel.rel2sql.RelToSqlConverter.visitChild(RelToSqlConverter.java:135) at org.apache.calcite.rel.rel2sql.SqlImplementor.visitChild(SqlImplementor.java:129) at org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:284) ... 18 moreCaused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524) ... 23 moreCaused by: java.lang.UnsupportedOperationException at org.apache.calcite.rel.rel2sql.SqlImplementor$Context.getAliasContext(SqlImplementor.java:898) at org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:623) at org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:336) ... {code} The Test Case: {code:java} private static void test(RelBuilder relBuilder) { RelNode left = relBuilder .values(new String[]{"f", "f2"}, "1", "2").build(); CorrelationId correlationId = new CorrelationId(0); RexNode rexCorrel = relBuilder.getRexBuilder().makeCorrel( left.getRowType(), correlationId); RelNode right = relBuilder .values(new String[]{"f3", "f4"}, "1", "2") .project(relBuilder.field(0), relBuilder.getRexBuilder() .makeFieldAccess(rexCorrel, 0)) .build(); RelNode correlate = new LogicalCorrelate(left.getCluster(), left.getTraitSet(), left, right, correlationId, ImmutableBitSet.of(0), JoinRelType.SEMI); class RelToSqlConverter2 extends RelToSqlConverter { public RelToSqlConverter2() { super(MysqlSqlDialect.DEFAULT); } @Override public Result dispatch(RelNode e) { return super.dispatch(e); } } ; correlate = RelDecorrelator.decorrelateQuery(correlate, relBuilder); RelToSqlConverter2 relToSqlConverter2 = new RelToSqlConverter2(); SqlString sqlString = relToSqlConverter2.dispatch(correlate).asStatement().toSqlString(MysqlSqlDialect.DEFAULT); } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)