You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by ch...@apache.org on 2022/05/26 01:19:14 UTC
[calcite] branch main updated: [CALCITE-5166] Method accept(RelShuttle) is not overridden in LogicalCalc and LogicalTableModify
This is an automated email from the ASF dual-hosted git repository.
chunwei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 9bdfd9a178 [CALCITE-5166] Method accept(RelShuttle) is not overridden in LogicalCalc and LogicalTableModify
9bdfd9a178 is described below
commit 9bdfd9a178f493b235d8785afd94fd0c998e8cce
Author: rkondakov <ko...@mail.ru>
AuthorDate: Sun May 22 19:14:12 2022 +0400
[CALCITE-5166] Method accept(RelShuttle) is not overridden in LogicalCalc and LogicalTableModify
---
.../java/org/apache/calcite/rel/RelHomogeneousShuttle.java | 10 ++++++++++
.../main/java/org/apache/calcite/rel/logical/LogicalCalc.java | 5 +++++
.../org/apache/calcite/rel/logical/LogicalTableModify.java | 5 +++++
.../java/org/apache/calcite/test/SqlToRelConverterTest.java | 8 ++++----
4 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/rel/RelHomogeneousShuttle.java b/core/src/main/java/org/apache/calcite/rel/RelHomogeneousShuttle.java
index 25c33ceba0..0c725dd1e0 100644
--- a/core/src/main/java/org/apache/calcite/rel/RelHomogeneousShuttle.java
+++ b/core/src/main/java/org/apache/calcite/rel/RelHomogeneousShuttle.java
@@ -19,6 +19,7 @@ package org.apache.calcite.rel;
import org.apache.calcite.rel.core.TableFunctionScan;
import org.apache.calcite.rel.core.TableScan;
import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalCalc;
import org.apache.calcite.rel.logical.LogicalCorrelate;
import org.apache.calcite.rel.logical.LogicalExchange;
import org.apache.calcite.rel.logical.LogicalFilter;
@@ -28,6 +29,7 @@ import org.apache.calcite.rel.logical.LogicalMatch;
import org.apache.calcite.rel.logical.LogicalMinus;
import org.apache.calcite.rel.logical.LogicalProject;
import org.apache.calcite.rel.logical.LogicalSort;
+import org.apache.calcite.rel.logical.LogicalTableModify;
import org.apache.calcite.rel.logical.LogicalUnion;
import org.apache.calcite.rel.logical.LogicalValues;
@@ -91,4 +93,12 @@ public class RelHomogeneousShuttle extends RelShuttleImpl {
@Override public RelNode visit(LogicalExchange exchange) {
return visit((RelNode) exchange);
}
+
+ @Override public RelNode visit(LogicalCalc calc) {
+ return visit((RelNode) calc);
+ }
+
+ @Override public RelNode visit(LogicalTableModify modify) {
+ return visit((RelNode) modify);
+ }
}
diff --git a/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java b/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
index 8e5d2acd76..2ab47e5c2f 100644
--- a/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
+++ b/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
@@ -25,6 +25,7 @@ import org.apache.calcite.rel.RelCollationTraitDef;
import org.apache.calcite.rel.RelDistributionTraitDef;
import org.apache.calcite.rel.RelInput;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttle;
import org.apache.calcite.rel.core.Calc;
import org.apache.calcite.rel.core.CorrelationId;
import org.apache.calcite.rel.hint.RelHint;
@@ -140,4 +141,8 @@ public final class LogicalCalc extends Calc {
return new LogicalCalc(getCluster(), traitSet,
ImmutableList.copyOf(hintList), input, program);
}
+
+ @Override public RelNode accept(RelShuttle shuttle) {
+ return shuttle.visit(this);
+ }
}
diff --git a/core/src/main/java/org/apache/calcite/rel/logical/LogicalTableModify.java b/core/src/main/java/org/apache/calcite/rel/logical/LogicalTableModify.java
index 372bb0249d..042547529d 100644
--- a/core/src/main/java/org/apache/calcite/rel/logical/LogicalTableModify.java
+++ b/core/src/main/java/org/apache/calcite/rel/logical/LogicalTableModify.java
@@ -23,6 +23,7 @@ import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.prepare.Prepare;
import org.apache.calcite.rel.RelInput;
import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttle;
import org.apache.calcite.rel.core.TableModify;
import org.apache.calcite.rex.RexNode;
@@ -92,4 +93,8 @@ public final class LogicalTableModify extends TableModify {
sole(inputs), getOperation(), getUpdateColumnList(),
getSourceExpressionList(), isFlattened());
}
+
+ @Override public RelNode accept(RelShuttle shuttle) {
+ return shuttle.visit(this);
+ }
}
diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
index 52893c4b94..41b38ec746 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@@ -2535,7 +2535,7 @@ class SqlToRelConverterTest extends SqlToRelTestBase {
programBuilder.addRuleInstance(CoreRules.PROJECT_TO_CALC);
final HepPlanner planner = new HepPlanner(programBuilder.build());
planner.setRoot(rel);
- final LogicalCalc calc = (LogicalCalc) planner.findBestExp();
+ final RelNode calc = planner.findBestExp();
final List<RelNode> rels = new ArrayList<>();
final RelShuttleImpl visitor = new RelShuttleImpl() {
@Override public RelNode visit(LogicalCalc calc) {
@@ -2544,14 +2544,14 @@ class SqlToRelConverterTest extends SqlToRelTestBase {
return visitedRel;
}
};
- visitor.visit(calc);
+ calc.accept(visitor);
assertThat(rels.size(), is(1));
assertThat(rels.get(0), isA(LogicalCalc.class));
}
@Test void testRelShuttleForLogicalTableModify() {
final String sql = "insert into emp select * from emp";
- final LogicalTableModify rel = (LogicalTableModify) sql(sql).toRel();
+ final RelNode rel = sql(sql).toRel();
final List<RelNode> rels = new ArrayList<>();
final RelShuttleImpl visitor = new RelShuttleImpl() {
@Override public RelNode visit(LogicalTableModify modify) {
@@ -2560,7 +2560,7 @@ class SqlToRelConverterTest extends SqlToRelTestBase {
return visitedRel;
}
};
- visitor.visit(rel);
+ rel.accept(visitor);
assertThat(rels.size(), is(1));
assertThat(rels.get(0), isA(LogicalTableModify.class));
}