This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch ty/CollectOperator
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit eedb7ddbdf2f0586468094a263f0acbea8ab34c0
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Jul 3 19:04:25 2024 +0800

    support collectOperator
---
 .../plan/planner/TableOperatorGenerator.java           | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
index dbfac54c645..a26f284e0d1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
@@ -32,6 +32,7 @@ import 
org.apache.iotdb.db.queryengine.execution.exchange.sink.ShuffleSinkHandle
 import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle;
 import org.apache.iotdb.db.queryengine.execution.operator.Operator;
 import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
+import 
org.apache.iotdb.db.queryengine.execution.operator.process.CollectOperator;
 import 
org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator;
 import 
org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator;
 import 
org.apache.iotdb.db.queryengine.execution.operator.process.MergeSortOperator;
@@ -64,6 +65,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
 import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
+import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
@@ -561,6 +563,22 @@ public class TableOperatorGenerator extends 
PlanVisitor<Operator, LocalExecution
         context);
   }
 
+  @Override
+  public Operator visitCollect(CollectNode node, LocalExecutionPlanContext 
context) {
+    OperatorContext operatorContext =
+        context
+            .getDriverContext()
+            .addOperatorContext(
+                context.getNextOperatorId(),
+                node.getPlanNodeId(),
+                CollectOperator.class.getSimpleName());
+    List<Operator> children = new ArrayList<>(node.getChildren().size());
+    for (PlanNode child : node.getChildren()) {
+      children.add(this.process(child, context));
+    }
+    return new CollectOperator(operatorContext, children);
+  }
+
   @Override
   public Operator visitMergeSort(MergeSortNode node, LocalExecutionPlanContext 
context) {
     OperatorContext operatorContext =

Reply via email to