This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/fixCI in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8019886e5b25d0ae4cf6966d162153eae8c6f69a Author: Minghui Liu <[email protected]> AuthorDate: Tue Dec 19 15:43:00 2023 +0800 fix CI --- .../plan/optimization/ColumnInjectionPushDown.java | 15 ++++++++++++--- .../queryengine/plan/planner/plan/node/PlanVisitor.java | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java index 40a869d18a1..7d629c6c668 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java @@ -33,6 +33,7 @@ import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static org.apache.iotdb.tsfile.utils.Preconditions.checkArgument; @@ -76,9 +77,17 @@ public class ColumnInjectionPushDown implements PlanOptimizer { @Override public PlanNode visitPlan(PlanNode node, RewriterContext context) { - for (PlanNode child : node.getChildren()) { - context.setParent(node); - child.accept(this, context); + // other source node, just return + return node; + } + + @Override + public PlanNode visitSingleChildProcess(SingleChildProcessNode node, RewriterContext context) { + PlanNode child = node.getChild(); + context.setParent(node); + PlanNode rewrittenChild = child.accept(this, context); + if (!rewrittenChild.equals(child)) { + return node.cloneWithChildren(Collections.singletonList(rewrittenChild)); } return node; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java index 10bde9ccf6c..e8f6b149f0b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java @@ -103,6 +103,7 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNo import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsOfOneDeviceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; +@SuppressWarnings("java:S6539") // suppress "Monster class" warning public abstract class PlanVisitor<R, C> { public R process(PlanNode node, C context) { @@ -200,7 +201,7 @@ public abstract class PlanVisitor<R, C> { } public R visitColumnInject(ColumnInjectNode node, C context) { - return visitPlan(node, context); + return visitSingleChildProcess(node, context); } public R visitSingleDeviceView(SingleDeviceViewNode node, C context) {
