You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2024/07/03 07:43:45 UTC

(iotdb) branch add_collect_node created (now cd27e917932)

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

caogaofei pushed a change to branch add_collect_node
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at cd27e917932 add CollectNode

This branch includes the following new commits:

     new 675f963894d Merge branch 'ty/TableModelGrammar' of github.com:apache/iotdb into ty/TableModelGrammar
     new cd27e917932 add CollectNode

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iotdb) 01/02: Merge branch 'ty/TableModelGrammar' of github.com:apache/iotdb into ty/TableModelGrammar

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch add_collect_node
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 675f963894d9d538fbe37075015e2accf8cf08f5
Merge: 64357a83db7 661f436a47a
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Wed Jul 3 15:06:10 2024 +0800

    Merge branch 'ty/TableModelGrammar' of github.com:apache/iotdb into ty/TableModelGrammar

 .../iotdb/itbase/runtime/ClusterTestStatement.java |  11 +-
 .../relational/it/schema/IoTDBDatabaseIT.java      |   4 +-
 .../iotdb/relational/it/schema/IoTDBTableIT.java   | 203 +++++++++++++++++++++
 .../CnToDnInternalServiceAsyncRequestManager.java  |   5 +
 .../load/subscriber/NodeStatisticsChangeEvent.java |  31 ----
 .../impl/schema/table/CreateTableProcedure.java    |   8 +-
 .../relational/ColumnTransformerBuilder.java       |  55 +++---
 .../execution/config/TableConfigTaskVisitor.java   |  65 ++++---
 .../config/executor/ClusterConfigTaskExecutor.java |  13 +-
 .../relational/AlterTableAddColumnTask.java        |  14 +-
 .../config/metadata/relational/ShowTablesTask.java |   7 +-
 .../relational/analyzer/ExpressionAnalyzer.java    |  43 ++---
 .../predicate/ConvertPredicateToFilterVisitor.java |   8 +
 .../plan/relational/metadata/ColumnSchema.java     |  12 ++
 .../relational/metadata/TableMetadataImpl.java     |  39 ++--
 .../metadata/fetcher/TableDeviceSchemaFetcher.java |  15 +-
 .../fetcher/TableHeaderSchemaValidator.java        |  78 +++++++-
 .../plan/relational/planner/LogicalPlanner.java    |  27 +--
 .../plan/relational/type/InternalTypeManager.java  |  16 ++
 .../dag/column/CaseWhenThenColumnTransformer.java  |  13 +-
 .../dag/column/ColumnTransformer.java              |   8 +-
 .../binary/CompareBinaryColumnTransformer.java     |   4 +-
 .../binary/CompareEqualToColumnTransformer.java    |  12 +-
 .../binary/CompareNonEqualColumnTransformer.java   |  12 +-
 .../column/ternary/BetweenColumnTransformer.java   |   5 +-
 .../ternary/CompareTernaryColumnTransformer.java   |   9 +-
 .../dag/column/unary/InColumnTransformer.java      |   8 +
 .../dag/column/unary/RegularColumnTransformer.java |   5 +-
 .../scalar/CastFunctionColumnTransformer.java      |  38 ++++
 .../db/schemaengine/table/DataNodeTableCache.java  |  10 +-
 .../compaction/io/CompactionTsFileWriter.java      |   1 +
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |   6 +-
 .../execution/operator/OperatorMemoryTest.java     |  19 +-
 .../plan/relational/analyzer/TestMatadata.java     |  54 +-----
 .../compaction/CompactionValidationTest.java       |   6 +-
 .../apache/iotdb/commons/schema/table/TsTable.java |   4 +
 36 files changed, 598 insertions(+), 270 deletions(-)


(iotdb) 02/02: add CollectNode

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch add_collect_node
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit cd27e917932cf81da144c7d9b28f266930504d61
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Wed Jul 3 15:43:27 2024 +0800

    add CollectNode
---
 .../plan/planner/plan/node/PlanNodeType.java       |  3 +-
 .../plan/planner/plan/node/PlanVisitor.java        |  5 ++
 .../plan/relational/planner/node/CollectNode.java  | 56 ++++++++++++++++++++++
 .../plan/relational/planner/node/OutputNode.java   |  1 +
 4 files changed, 64 insertions(+), 1 deletion(-)

diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
index 929775f88e1..589d6206950 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
@@ -238,7 +238,8 @@ public enum PlanNodeType {
   TABLE_OFFSET_NODE((short) 1005),
   TABLE_SORT_NODE((short) 1006),
   TABLE_MERGESORT_NODE((short) 1007),
-  TABLE_TOPK_NODE((short) 1008);
+  TABLE_TOPK_NODE((short) 1008),
+  TABLE_COLLECT_NODE((short) 1009);
 
   public static final int BYTES = Short.BYTES;
 
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 cfd760bb7ba..aea1264e0a1 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
@@ -589,6 +589,11 @@ public abstract class PlanVisitor<R, C> {
     return visitSingleChildProcess(node, context);
   }
 
+  public R visitCollect(
+      org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode node, C context) {
+    return visitMultiChildProcess(node, context);
+  }
+
   public R visitSort(
       org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode node, C context) {
     return visitSingleChildProcess(node, context);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java
new file mode 100644
index 00000000000..87d3ce34afa
--- /dev/null
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java
@@ -0,0 +1,56 @@
+package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode;
+import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.List;
+
+/** CollectNode output the content of children. */
+public class CollectNode extends MultiChildProcessNode {
+
+  public CollectNode(PlanNodeId id) {
+    super(id);
+  }
+
+  @Override
+  public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
+    return visitor.visitCollect(this, context);
+  }
+
+  @Override
+  public PlanNode clone() {
+    return new CollectNode(id);
+  }
+
+  @Override
+  public List<Symbol> getOutputSymbols() {
+    return children.get(0).getOutputSymbols();
+  }
+
+  @Override
+  public List<String> getOutputColumnNames() {
+    throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected void serializeAttributes(ByteBuffer byteBuffer) {
+    PlanNodeType.TABLE_COLLECT_NODE.serialize(byteBuffer);
+  }
+
+  @Override
+  protected void serializeAttributes(DataOutputStream stream) throws IOException {
+    PlanNodeType.TABLE_COLLECT_NODE.serialize(stream);
+  }
+
+  public static CollectNode deserialize(ByteBuffer byteBuffer) {
+    PlanNodeId planNodeId = PlanNodeId.deserialize(byteBuffer);
+    return new CollectNode(planNodeId);
+  }
+}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java
index 6a707a30000..da8105d741e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java
@@ -108,6 +108,7 @@ public class OutputNode extends SingleChildProcessNode {
     return this.columnNames;
   }
 
+  @Override
   public List<Symbol> getOutputSymbols() {
     return outputs;
   }