You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/04/28 15:47:24 UTC
[iotdb] 01/01: Support Create aligned timeseries
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch createAlignedTimeseries
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9c7af7b7f9f0f4c1af8be976740e18db0ec6dd63
Author: HTHou <hh...@outlook.com>
AuthorDate: Thu Apr 28 23:46:51 2022 +0800
Support Create aligned timeseries
---
.../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)