This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/ChangeTsFileVersion in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 58dc6725cde72f35805f82ea687c99140034098c Author: JackieTien97 <[email protected]> AuthorDate: Tue Aug 6 15:45:42 2024 +0800 add assert for MeasurementPath and AlignedPath --- .../queryengine/plan/analyze/TemplatedAnalyze.java | 9 ++------ .../plan/expression/leaf/TimeSeriesOperand.java | 5 +---- .../org/apache/iotdb/commons/path/AlignedPath.java | 24 ++++++++++++++++++++ .../apache/iotdb/commons/path/MeasurementPath.java | 26 ++++++++++++++++++++++ pom.xml | 2 +- 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java index 6014cd572f7..9622d2a6e16 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java @@ -22,7 +22,6 @@ package org.apache.iotdb.db.queryengine.plan.analyze; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; -import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -130,10 +129,8 @@ public class TemplatedAnalyze { paginationController.consumeOffset(); } else if (paginationController.hasCurLimit()) { String measurementName = entry.getKey(); - IMeasurementSchema measurementSchema = entry.getValue(); TimeSeriesOperand measurementPath = - new TimeSeriesOperand( - new MeasurementPath(new String[] {measurementName}, measurementSchema)); + new TimeSeriesOperand(new PartialPath(new String[] {measurementName})); // reserve memory for this expression context.reserveMemoryForFrontEnd(measurementPath.ramBytesUsed()); outputExpressions.add(new Pair<>(measurementPath, null)); @@ -153,10 +150,8 @@ public class TemplatedAnalyze { if (paginationController.hasCurOffset()) { paginationController.consumeOffset(); } else if (paginationController.hasCurLimit()) { - IMeasurementSchema measurementSchema = template.getSchemaMap().get(measurementName); TimeSeriesOperand measurementPath = - new TimeSeriesOperand( - new MeasurementPath(new String[] {measurementName}, measurementSchema)); + new TimeSeriesOperand(new PartialPath(new String[] {measurementName})); // reserve memory for this expression context.reserveMemoryForFrontEnd(measurementPath.ramBytesUsed()); outputExpressions.add(new Pair<>(measurementPath, resultColumn.getAlias())); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java index 22ded4d95d7..f063605dfa4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java @@ -19,7 +19,6 @@ package org.apache.iotdb.db.queryengine.plan.expression.leaf; -import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; @@ -54,9 +53,7 @@ public class TimeSeriesOperand extends LeafOperand { public static TimeSeriesOperand constructColumnHeaderExpression( String columnName, TSDataType dataType) { - MeasurementPath measurementPath = - new MeasurementPath(new PartialPath(columnName, false), dataType); - return new TimeSeriesOperand(measurementPath); + return new TimeSeriesOperand(new PartialPath(columnName, false)); } public PartialPath getPath() { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/AlignedPath.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/AlignedPath.java index 6bb91921769..150613e066c 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/AlignedPath.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/AlignedPath.java @@ -52,6 +52,9 @@ import java.util.Objects; */ public class AlignedPath extends PartialPath { + private static final String NODES_LENGTH_ERROR = + "nodes.length for MeasurementPath should always be greater than 1, current is: %s"; + private static final Logger logger = LoggerFactory.getLogger(AlignedPath.class); // todo improve vector implementation by remove this placeholder @@ -64,6 +67,9 @@ public class AlignedPath extends PartialPath { public AlignedPath(String vectorPath, List<String> subSensorsList) throws IllegalPathException { super(vectorPath); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } // check whether subSensor is legal for (String subSensor : subSensorsList) { PathUtils.isLegalPath(subSensor); @@ -91,6 +97,9 @@ public class AlignedPath extends PartialPath { public AlignedPath(String vectorPath, String subSensor) throws IllegalPathException { super(vectorPath); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } measurementList = new ArrayList<>(); PathUtils.isLegalPath(subSensor); measurementList.add(subSensor); @@ -98,6 +107,9 @@ public class AlignedPath extends PartialPath { public AlignedPath(PartialPath vectorPath, String subSensor) throws IllegalPathException { super(vectorPath.getNodes()); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } measurementList = new ArrayList<>(); PathUtils.isLegalPath(subSensor); measurementList.add(subSensor); @@ -105,12 +117,18 @@ public class AlignedPath extends PartialPath { public AlignedPath(PartialPath vectorPath) { super(vectorPath.getNodes()); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } measurementList = new ArrayList<>(); schemaList = new ArrayList<>(); } public AlignedPath(MeasurementPath path) { super(path.getDevicePath().getNodes()); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } measurementList = new ArrayList<>(); measurementList.add(path.getMeasurement()); schemaList = new ArrayList<>(); @@ -119,6 +137,9 @@ public class AlignedPath extends PartialPath { public AlignedPath(String vectorPath) throws IllegalPathException { super(vectorPath); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } measurementList = new ArrayList<>(); schemaList = new ArrayList<>(); } @@ -126,6 +147,9 @@ public class AlignedPath extends PartialPath { public AlignedPath( String[] nodes, List<String> measurementList, List<IMeasurementSchema> schemaList) { super(nodes); + if (nodes.length < 2) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } this.measurementList = measurementList; this.schemaList = schemaList; } diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/MeasurementPath.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/MeasurementPath.java index 7a39c955337..535fcd49497 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/MeasurementPath.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/path/MeasurementPath.java @@ -49,6 +49,9 @@ import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDC public class MeasurementPath extends PartialPath { + private static final String NODES_LENGTH_ERROR = + "nodes.length for MeasurementPath should always be greater than 2, current is: %s"; + private static final Logger logger = LoggerFactory.getLogger(MeasurementPath.class); private IMeasurementSchema measurementSchema; @@ -64,10 +67,16 @@ public class MeasurementPath extends PartialPath { public MeasurementPath(String measurementPath) throws IllegalPathException { super(measurementPath); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } } public MeasurementPath(String measurementPath, TSDataType type) throws IllegalPathException { super(measurementPath); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } this.measurementSchema = new MeasurementSchema(getMeasurement(), type); } @@ -84,6 +93,9 @@ public class MeasurementPath extends PartialPath { IMeasurementSchema measurementSchema, Boolean isUnderAlignedEntity) { super(measurementPath.getNodes()); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } this.measurementSchema = measurementSchema; this.isUnderAlignedEntity = isUnderAlignedEntity; } @@ -100,21 +112,35 @@ public class MeasurementPath extends PartialPath { public MeasurementPath(String device, String measurement) throws IllegalPathException { super(device, measurement); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } } public MeasurementPath(String device, String measurement, IMeasurementSchema measurementSchema) throws IllegalPathException { super(device, measurement); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } this.measurementSchema = measurementSchema; } public MeasurementPath(String[] nodes, IMeasurementSchema schema) { super(nodes); + if (nodes.length < 3) { + throw new IllegalArgumentException(String.format(NODES_LENGTH_ERROR, Arrays.toString(nodes))); + } this.measurementSchema = schema; } public MeasurementPath(String[] nodes) { super(nodes); + if (nodes.length < 3) { + throw new IllegalArgumentException( + "nodes.length for MeasurementPath should always be greater than 2, current is: " + + Arrays.toString(nodes)); + } } @Override diff --git a/pom.xml b/pom.xml index 58a9047b352..f582154b2ca 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ <thrift.version>0.14.1</thrift.version> <xz.version>1.9</xz.version> <zstd-jni.version>1.5.6-3</zstd-jni.version> - <tsfile.version>1.0.1-tsfilev4-240726-SNAPSHOT</tsfile.version> + <tsfile.version>1.2.0-8aaedb22-SNAPSHOT</tsfile.version> </properties> <!-- if we claim dependencies in dependencyManagement, then we do not claim
