You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/12/19 07:43:16 UTC
(iotdb) 01/01: fix CI
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 <li...@foxmail.com>
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) {