This is an automated email from the ASF dual-hosted git repository. geniuspig pushed a commit to branch optimize_path_v2 in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit fb6cef2f436cc2f8f82f91bc458bc35eb641c45d Author: zhutianci <[email protected]> AuthorDate: Sat Aug 15 16:24:49 2020 +0800 path and plan --- .../main/java/org/apache/iotdb/db/metadata/PartialPath.java | 5 +++++ .../iotdb/db/qp/logical/sys/DeletePartitionOperator.java | 7 ++++--- .../apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java | 7 ++++--- .../main/java/org/apache/iotdb/db/utils/SchemaUtils.java | 13 ++++++------- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java index a941410..506dd29 100755 --- a/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.metadata; import java.util.Arrays; import org.apache.iotdb.db.exception.metadata.IllegalPathException; import org.apache.iotdb.tsfile.common.constant.TsFileConstant; +import org.apache.iotdb.tsfile.read.common.Path; /** * A prefix path, suffix path or fullPath generated from SQL @@ -152,6 +153,10 @@ public class PartialPath implements Comparable<PartialPath> { return true; } + public Path toTSFilePath() { + return new Path(getPathWithoutLastNode(), getLastNode()); + } + @Override public int compareTo(PartialPath o) { return this.toString().compareTo(o.toString()); diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/DeletePartitionOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/DeletePartitionOperator.java index 33e2345..5615893 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/DeletePartitionOperator.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/DeletePartitionOperator.java @@ -20,11 +20,12 @@ package org.apache.iotdb.db.qp.logical.sys; import java.util.Set; +import org.apache.iotdb.db.metadata.PartialPath; import org.apache.iotdb.db.qp.logical.RootOperator; public class DeletePartitionOperator extends RootOperator { - private String storageGroupName; + private PartialPath storageGroupName; private Set<Long> partitionIds; public DeletePartitionOperator(int tokenIntType) { @@ -32,7 +33,7 @@ public class DeletePartitionOperator extends RootOperator { operatorType = OperatorType.DELETE_PARTITION; } - public void setStorageGroupName(String storageGroupName) { + public void setStorageGroupName(PartialPath storageGroupName) { this.storageGroupName = storageGroupName; } @@ -40,7 +41,7 @@ public class DeletePartitionOperator extends RootOperator { this.partitionIds = partitionIds; } - public String getStorageGroupName() { + public PartialPath getStorageGroupName() { return storageGroupName; } diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java index cf1e550..1499f92 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.qp.physical.crud; import java.util.List; import java.util.Map; +import org.apache.iotdb.db.metadata.PartialPath; import org.apache.iotdb.db.qp.logical.Operator; import org.apache.iotdb.db.qp.logical.Operator.OperatorType; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; @@ -29,7 +30,7 @@ public class AlignByDevicePlan extends QueryPlan { private List<String> measurements; // to record result measurement columns, e.g. temperature, status, speed // to check data type consistency for the same name sensor of different devices - private List<String> devices; + private List<PartialPath> devices; // to record the datatype of the column in the result set private Map<String, TSDataType> columnDataTypeMap; private Map<String, IExpression> deviceToFilterMap; @@ -56,11 +57,11 @@ public class AlignByDevicePlan extends QueryPlan { return measurements; } - public void setDevices(List<String> devices) { + public void setDevices(List<PartialPath> devices) { this.devices = devices; } - public List<String> getDevices() { + public List<PartialPath> getDevices() { return devices; } diff --git a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java index 4131d79..dc0305b 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java @@ -34,7 +34,6 @@ import org.apache.iotdb.db.service.IoTDB; 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.read.common.Path; import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,7 +75,7 @@ public class SchemaUtils { public static void registerTimeseries(TimeseriesSchema schema) { try { logger.debug("Registering timeseries {}", schema); - String path = schema.getFullPath(); + PartialPath path = new PartialPath(schema.getFullPath()); TSDataType dataType = schema.getType(); TSEncoding encoding = schema.getEncodingType(); CompressionType compressionType = schema.getCompressor(); @@ -118,20 +117,20 @@ public class SchemaUtils { return dataTypes; } - public static List<TSDataType> getSeriesTypesByPath(Collection<Path> paths, + public static List<TSDataType> getSeriesTypesByPath(Collection<PartialPath> paths, String aggregation) throws MetadataException { TSDataType dataType = getAggregationType(aggregation); if (dataType != null) { return Collections.nCopies(paths.size(), dataType); } List<TSDataType> dataTypes = new ArrayList<>(); - for (Path path : paths) { - dataTypes.add(IoTDB.metaManager.getSeriesType(path.getFullPath())); + for (PartialPath path : paths) { + dataTypes.add(IoTDB.metaManager.getSeriesType(path)); } return dataTypes; } - public static List<TSDataType> getSeriesTypesByPath(List<Path> paths, + public static List<TSDataType> getSeriesTypesByPath(List<PartialPath> paths, List<String> aggregations) throws MetadataException { List<TSDataType> tsDataTypes = new ArrayList<>(); for (int i = 0; i < paths.size(); i++) { @@ -139,7 +138,7 @@ public class SchemaUtils { if (dataType != null) { tsDataTypes.add(dataType); } else { - tsDataTypes.add(IoTDB.metaManager.getSeriesType(paths.get(i).getFullPath())); + tsDataTypes.add(IoTDB.metaManager.getSeriesType(paths.get(i))); } } return tsDataTypes;
