You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "jamie12221 (Jira)" <ji...@apache.org> on 2020/06/27 18:27:00 UTC
[jira] [Created] (CALCITE-4093) Unable to translate correlate to
SQL
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)