You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/04/29 02:07:56 UTC

[iotdb] branch master updated: Support Create aligned timeseries (#5727)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f1ffc0a054 Support Create aligned timeseries (#5727)
f1ffc0a054 is described below

commit f1ffc0a054a33abaf37d7b5d098199b3329d5552
Author: Haonan <hh...@outlook.com>
AuthorDate: Fri Apr 29 10:07:51 2022 +0800

    Support Create aligned timeseries (#5727)
---
 .../apache/iotdb/db/mpp/sql/analyze/Analyzer.java  |  2 +-
 .../write/CreateAlignedTimeSeriesNode.java         | 27 ++++++++++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/sql/analyze/Analyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/sql/analyze/Analyzer.java
index a709769142..c85e5e254a 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/sql/analyze/Analyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/sql/analyze/Analyzer.java
@@ -273,7 +273,7 @@ public class Analyzer {
 
       SchemaPartition schemaPartitionInfo;
       schemaPartitionInfo =
-          partitionFetcher.getSchemaPartition(
+          partitionFetcher.getOrCreateSchemaPartition(
               new PathPatternTree(
                   createAlignedTimeSeriesStatement.getDevicePath(),
                   createAlignedTimeSeriesStatement.getMeasurements()));
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
index d5ec00efae..da3ef0afc7 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/CreateAlignedTimeSeriesNode.java
@@ -19,25 +19,30 @@
 
 package org.apache.iotdb.db.mpp.sql.planner.plan.node.metedata.write;
 
+import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
+import org.apache.iotdb.db.mpp.sql.analyze.Analysis;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanNodeType;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanVisitor;
+import org.apache.iotdb.db.mpp.sql.planner.plan.node.WritePlanNode;
 import org.apache.iotdb.tsfile.exception.NotImplementedException;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
+import com.google.common.collect.ImmutableList;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-public class CreateAlignedTimeSeriesNode extends PlanNode {
+public class CreateAlignedTimeSeriesNode extends WritePlanNode {
   private PartialPath devicePath;
   private List<String> measurements;
   private List<TSDataType> dataTypes;
@@ -47,6 +52,7 @@ public class CreateAlignedTimeSeriesNode extends PlanNode {
   private List<Map<String, String>> tagsList;
   private List<Map<String, String>> attributesList;
   private List<Long> tagOffsets;
+  private TRegionReplicaSet regionReplicaSet;
 
   public CreateAlignedTimeSeriesNode(
       PlanNodeId id,
@@ -143,7 +149,7 @@ public class CreateAlignedTimeSeriesNode extends PlanNode {
 
   @Override
   public List<PlanNode> getChildren() {
-    return null;
+    return new ArrayList<>();
   }
 
   @Override
@@ -354,6 +360,23 @@ public class CreateAlignedTimeSeriesNode extends PlanNode {
         attributesList);
   }
 
+  @Override
+  public TRegionReplicaSet getRegionReplicaSet() {
+    return regionReplicaSet;
+  }
+
+  public void setRegionReplicaSet(TRegionReplicaSet regionReplicaSet) {
+    this.regionReplicaSet = regionReplicaSet;
+  }
+
+  @Override
+  public List<WritePlanNode> splitByPartition(Analysis analysis) {
+    TRegionReplicaSet regionReplicaSet =
+        analysis.getSchemaPartitionInfo().getSchemaRegionReplicaSet(devicePath.getFullPath());
+    setRegionReplicaSet(regionReplicaSet);
+    return ImmutableList.of(this);
+  }
+
   //  @Override
   //  public void executeOn(SchemaRegion schemaRegion) throws MetadataException {
   //    schemaRegion.createAlignedTimeSeries((CreateAlignedTimeSeriesPlan)