You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ma...@apache.org on 2022/10/31 09:40:21 UTC
[iotdb] branch IOTDB-4791 updated: add new param needCheck for Path
This is an automated email from the ASF dual-hosted git repository.
marklau99 pushed a commit to branch IOTDB-4791
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/IOTDB-4791 by this push:
new 413938b117 add new param needCheck for Path
413938b117 is described below
commit 413938b117a4fec10624abfca091c9a03096d828
Author: Liu Xuxin <li...@outlook.com>
AuthorDate: Mon Oct 31 17:40:06 2022 +0800
add new param needCheck for Path
---
.../tests/tools/tsfile/ExportTsFileTestIT.java | 6 +-
.../java/org/apache/iotdb/tsfile/TsFileRead.java | 11 +-
.../iotdb/hadoop/tsfile/TSFRecordReader.java | 2 +-
.../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java | 3 +-
.../org/apache/iotdb/commons/path/PartialPath.java | 2 +-
.../db/engine/cache/TimeSeriesMetadataCache.java | 5 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +-
.../iotdb/db/sync/datasource/TsFileOpBlock.java | 5 +-
.../apache/iotdb/db/tools/TsFileSelfCheckTool.java | 3 +-
.../apache/iotdb/db/tools/TsFileSketchTool.java | 3 +-
.../inner/ReadChunkCompactionPerformerOldTest.java | 2 +-
.../inner/sizetiered/SizeTieredCompactionTest.java | 8 +-
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 2 +-
.../iotdb/db/qp/physical/ConcatOptimizerTest.java | 10 +-
.../iotdb/db/qp/physical/PhysicalPlanTest.java | 56 ++++---
.../iotdb/db/utils/TsFileRewriteToolTest.java | 4 +-
.../db/wal/recover/WALRecoverManagerTest.java | 16 +-
.../file/SealedTsFileRecoverPerformerTest.java | 32 ++--
.../file/UnsealedTsFileRecoverPerformerTest.java | 16 +-
.../apache/iotdb/spark/tsfile/DefaultSource.scala | 10 +-
.../iotdb/spark/tsfile/NarrowConverter.scala | 181 ++++++++++-----------
.../org/apache/iotdb/spark/tsfile/TSFileSuit.scala | 30 ++--
.../iotdb/tsfile/read/TsFileSequenceReader.java | 12 +-
.../org/apache/iotdb/tsfile/read/common/Path.java | 9 +-
.../read/controller/MetadataQuerierByFileImpl.java | 3 +-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 2 +-
.../write/writer/tsmiterator/DiskTSMIterator.java | 2 +-
.../write/writer/tsmiterator/TSMIterator.java | 5 +-
...easurementChunkMetadataListMapIteratorTest.java | 2 +-
.../iotdb/tsfile/read/ReadInPartitionTest.java | 22 +--
.../org/apache/iotdb/tsfile/read/ReadTest.java | 54 +++---
.../iotdb/tsfile/read/TimePlainEncodeReadTest.java | 55 ++++---
.../tsfile/read/TimeSeriesMetadataReadTest.java | 4 +-
.../apache/iotdb/tsfile/read/TsFileReaderTest.java | 126 +++++++-------
.../tsfile/read/controller/ChunkLoaderTest.java | 2 +-
.../controller/IMetadataQuerierByFileImplTest.java | 16 +-
.../read/filter/IExpressionOptimizerTest.java | 30 ++--
.../read/query/executor/QueryExecutorTest.java | 32 ++--
.../read/query/timegenerator/ReadWriteTest.java | 8 +-
.../query/timegenerator/ReaderByTimestampTest.java | 2 +-
.../timegenerator/TimeGeneratorReadEmptyTest.java | 8 +-
.../timegenerator/TimeGeneratorReadWriteTest.java | 8 +-
.../query/timegenerator/TimeGeneratorTest.java | 6 +-
.../iotdb/tsfile/read/reader/ChunkReaderTest.java | 2 +-
.../tsfile/read/reader/FakedTimeGenerator.java | 9 +-
.../iotdb/tsfile/read/reader/ReaderTest.java | 8 +-
.../tsfile/write/DefaultSchemaTemplateTest.java | 2 +-
.../tsfile/write/MetadataIndexConstructorTest.java | 6 +-
...SameMeasurementsWithDifferentDataTypesTest.java | 4 +-
.../iotdb/tsfile/write/TsFileReadWriteTest.java | 4 +-
.../iotdb/tsfile/write/TsFileWriterTest.java | 10 +-
.../org/apache/iotdb/tsfile/write/WriteTest.java | 2 +-
.../write/writer/ForceAppendTsFileWriterTest.java | 4 +-
.../write/writer/RestorableTsFileIOWriterTest.java | 36 ++--
54 files changed, 469 insertions(+), 435 deletions(-)
diff --git a/cross-tests/src/test/java/org/apache/iotdb/cross/tests/tools/tsfile/ExportTsFileTestIT.java b/cross-tests/src/test/java/org/apache/iotdb/cross/tests/tools/tsfile/ExportTsFileTestIT.java
index 9370af45af..70355942fa 100644
--- a/cross-tests/src/test/java/org/apache/iotdb/cross/tests/tools/tsfile/ExportTsFileTestIT.java
+++ b/cross-tests/src/test/java/org/apache/iotdb/cross/tests/tools/tsfile/ExportTsFileTestIT.java
@@ -89,9 +89,9 @@ public class ExportTsFileTestIT extends AbstractScript {
try (TsFileSequenceReader reader = new TsFileSequenceReader(path);
TsFileReader readTsFile = new TsFileReader(reader)) {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("root.test.t2", "c1"));
- paths.add(new Path("root.test.t2", "c2"));
- paths.add(new Path("root.test.t2", "c3"));
+ paths.add(new Path("root.test.t2", "c1", true));
+ paths.add(new Path("root.test.t2", "c2", true));
+ paths.add(new Path("root.test.t2", "c3", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
return readTsFile.query(queryExpression);
}
diff --git a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileRead.java b/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileRead.java
index e82ac5fd2a..90fe1c9cdb 100644
--- a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileRead.java
+++ b/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileRead.java
@@ -66,9 +66,9 @@ public class TsFileRead {
// use these paths(all measurements) for all the queries
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path(DEVICE_1, SENSOR_1));
- paths.add(new Path(DEVICE_1, SENSOR_2));
- paths.add(new Path(DEVICE_1, SENSOR_3));
+ paths.add(new Path(DEVICE_1, SENSOR_1, true));
+ paths.add(new Path(DEVICE_1, SENSOR_2, true));
+ paths.add(new Path(DEVICE_1, SENSOR_3, true));
// no filter, should select 1 2 3 4 6 7 8
queryAndPrint(paths, readTsFile, null);
@@ -82,7 +82,7 @@ public class TsFileRead {
// value filter : device_1.sensor_2 <= 20, should select 1 2 4 6 7
IExpression valueFilter =
- new SingleSeriesExpression(new Path(DEVICE_1, SENSOR_2), ValueFilter.ltEq(20L));
+ new SingleSeriesExpression(new Path(DEVICE_1, SENSOR_2, true), ValueFilter.ltEq(20L));
queryAndPrint(paths, readTsFile, valueFilter);
// time filter : 4 <= time <= 10, value filter : device_1.sensor_3 >= 20, should select 4 7 8
@@ -90,7 +90,8 @@ public class TsFileRead {
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(4L)),
new GlobalTimeExpression(TimeFilter.ltEq(10L)));
- valueFilter = new SingleSeriesExpression(new Path(DEVICE_1, SENSOR_3), ValueFilter.gtEq(20L));
+ valueFilter =
+ new SingleSeriesExpression(new Path(DEVICE_1, SENSOR_3, true), ValueFilter.gtEq(20L));
IExpression finalFilter = BinaryExpression.and(timeFilter, valueFilter);
queryAndPrint(paths, readTsFile, finalFilter);
}
diff --git a/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java b/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java
index 7613a5f0a5..2a10faf2f5 100644
--- a/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java
+++ b/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java
@@ -112,7 +112,7 @@ public class TSFRecordReader extends RecordReader<NullWritable, MapWritable> imp
for (String deviceId : deviceIds) {
List<Path> paths =
measurementIds.stream()
- .map(measurementId -> new Path(deviceId, measurementId))
+ .map(measurementId -> new Path(deviceId, measurementId, true))
.collect(toList());
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet dataSet =
diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
index e8d7b026b5..8ecfa0d555 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
@@ -122,7 +122,8 @@ public class IOTDBLoadTsFileIT {
String sql =
String.format(
"create timeseries %s %s",
- new Path(device, schema.getMeasurementId()).getFullPath(), schema.getType().name());
+ new Path(device, schema.getMeasurementId(), true).getFullPath(),
+ schema.getType().name());
LOGGER.info(String.format("schema execute: %s.", sql));
return sql;
}
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java b/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
index 85d8b10d1c..e545633b08 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/path/PartialPath.java
@@ -653,7 +653,7 @@ public class PartialPath extends Path implements Comparable<Path>, Cloneable {
@TestOnly
public Path toTSFilePath() {
- return new Path(getDevice(), getMeasurement());
+ return new Path(getDevice(), getMeasurement(), true);
}
public static List<String> toStringList(List<PartialPath> pathList) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index 675225a9d1..d70b2faf41 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -127,7 +127,8 @@ public class TimeSeriesMetadataCache {
return null;
}
TimeseriesMetadata timeseriesMetadata =
- reader.readTimeseriesMetadata(new Path(key.device, key.measurement), ignoreNotExists);
+ reader.readTimeseriesMetadata(
+ new Path(key.device, key.measurement, true), ignoreNotExists);
return (timeseriesMetadata == null || timeseriesMetadata.getStatistics().getCount() == 0)
? null
: timeseriesMetadata;
@@ -147,7 +148,7 @@ public class TimeSeriesMetadataCache {
// double check
timeseriesMetadata = lruCache.getIfPresent(key);
if (timeseriesMetadata == null) {
- Path path = new Path(key.device, key.measurement);
+ Path path = new Path(key.device, key.measurement, true);
// bloom filter part
BloomFilter bloomFilter =
BloomFilterCache.getInstance()
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 2212cb66a1..72dc290b77 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -1533,7 +1533,7 @@ public class PlanExecutor implements IPlanExecutor {
if (!registeredSeries.contains(series)) {
registeredSeries.add(series);
IMeasurementSchema schema =
- knownSchemas.get(new Path(series.getDevice(), series.getMeasurement()));
+ knownSchemas.get(new Path(series.getDevice(), series.getMeasurement(), true));
if (schema == null) {
throw new MetadataException(
String.format(
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/datasource/TsFileOpBlock.java b/server/src/main/java/org/apache/iotdb/db/sync/datasource/TsFileOpBlock.java
index 77b35ff973..ec218c73f1 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/datasource/TsFileOpBlock.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/datasource/TsFileOpBlock.java
@@ -250,7 +250,7 @@ public class TsFileOpBlock extends AbstractOpBlock {
ChunkInfo chunkInfo = new ChunkInfo();
chunkInfo.measurementFullPath =
- new Path(device, chunkMetadata.getMeasurementUid()).getFullPath();
+ new Path(device, chunkMetadata.getMeasurementUid(), true).getFullPath();
chunkInfo.chunkOffsetInFile = chunkMetadata.getOffsetOfChunkHeader();
chunkInfo.pointCount = chunkMetadata.getStatistics().getCount();
@@ -1101,7 +1101,8 @@ public class TsFileOpBlock extends AbstractOpBlock {
timeseriesMetadataMap.put(
pos,
new Pair<>(
- new Path(deviceId, timeseriesMetadata.getMeasurementId()), timeseriesMetadata));
+ new Path(deviceId, timeseriesMetadata.getMeasurementId(), true),
+ timeseriesMetadata));
}
} else { // deviceId should be determined by LEAF_DEVICE node
if (type.equals(MetadataIndexNodeType.LEAF_DEVICE)) {
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSelfCheckTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSelfCheckTool.java
index 1309fdf652..657987783f 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSelfCheckTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSelfCheckTool.java
@@ -129,7 +129,8 @@ public class TsFileSelfCheckTool {
timeseriesMetadataMap.put(
pos,
new Pair<>(
- new Path(deviceId, timeseriesMetadata.getMeasurementId()), timeseriesMetadata));
+ new Path(deviceId, timeseriesMetadata.getMeasurementId(), true),
+ timeseriesMetadata));
}
} else {
// deviceId should be determined by LEAF_DEVICE node
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
index d6f209ab0d..9c8ecef480 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
@@ -456,7 +456,8 @@ public class TsFileSketchTool {
timeseriesMetadataMap.put(
pos,
new Pair<>(
- new Path(deviceId, timeseriesMetadata.getMeasurementId()), timeseriesMetadata));
+ new Path(deviceId, timeseriesMetadata.getMeasurementId(), true),
+ timeseriesMetadata));
}
} else {
// deviceId should be determined by LEAF_DEVICE node
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/ReadChunkCompactionPerformerOldTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/ReadChunkCompactionPerformerOldTest.java
index b48d494c0b..f00ca8e9c0 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/ReadChunkCompactionPerformerOldTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/ReadChunkCompactionPerformerOldTest.java
@@ -119,7 +119,7 @@ public class ReadChunkCompactionPerformerOldTest extends InnerCompactionTest {
CompactionUtils.moveTargetFile(
Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
sizeTieredCompactionLogger.close();
- Path path = new Path(deviceIds[0], measurementSchemas[0].getMeasurementId());
+ Path path = new Path(deviceIds[0], measurementSchemas[0].getMeasurementId(), true);
try (TsFileSequenceReader reader =
new TsFileSequenceReader(targetTsFileResource.getTsFilePath());
TsFileReader readTsFile = new TsFileReader(reader)) {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
index 019f061cc2..736ecd51cd 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
@@ -204,7 +204,7 @@ public class SizeTieredCompactionTest {
for (String deviceId : deviceIds) {
for (MeasurementSchema measurementSchema : measurementSchemas) {
fileWriter.registerTimeseries(
- new Path(deviceId, measurementSchema.getMeasurementId()), measurementSchema);
+ new Path(deviceId, measurementSchema.getMeasurementId(), true), measurementSchema);
}
}
for (long i = timeOffset; i < timeOffset + ptNum; i++) {
@@ -248,7 +248,8 @@ public class SizeTieredCompactionTest {
tsFileResource1.updatePlanIndexes((long) 0);
TsFileWriter fileWriter1 = new TsFileWriter(tsFileResource1.getTsFile());
fileWriter1.registerTimeseries(
- new Path(deviceIds[0], measurementSchemas[0].getMeasurementId()), measurementSchemas[0]);
+ new Path(deviceIds[0], measurementSchemas[0].getMeasurementId(), true),
+ measurementSchemas[0]);
TSRecord record1 = new TSRecord(0, deviceIds[0]);
record1.addTuple(
DataPoint.getDataPoint(
@@ -275,7 +276,8 @@ public class SizeTieredCompactionTest {
tsFileResource2.updatePlanIndexes((long) 1);
TsFileWriter fileWriter2 = new TsFileWriter(tsFileResource2.getTsFile());
fileWriter2.registerTimeseries(
- new Path(deviceIds[0], measurementSchemas[1].getMeasurementId()), measurementSchemas[1]);
+ new Path(deviceIds[0], measurementSchemas[1].getMeasurementId(), true),
+ measurementSchemas[1]);
TSRecord record2 = new TSRecord(0, deviceIds[0]);
record2.addTuple(
DataPoint.getDataPoint(
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/other/TSPlanContextAuthorTest.java b/server/src/test/java/org/apache/iotdb/db/qp/other/TSPlanContextAuthorTest.java
index 2716bc0396..2b39495e2a 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/other/TSPlanContextAuthorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/other/TSPlanContextAuthorTest.java
@@ -40,7 +40,7 @@ import static org.junit.Assert.fail;
public class TSPlanContextAuthorTest {
private static Path[] emptyPaths = new Path[] {};
- private static Path[] testPaths = new Path[] {new Path("root.node1.a", "b")};
+ private static Path[] testPaths = new Path[] {new Path("root.node1.a", "b", true)};
private String inputSQL;
private Path[] paths;
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/physical/ConcatOptimizerTest.java b/server/src/test/java/org/apache/iotdb/db/qp/physical/ConcatOptimizerTest.java
index 1d404d9e59..7f63328147 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/physical/ConcatOptimizerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/physical/ConcatOptimizerTest.java
@@ -119,7 +119,7 @@ public class ConcatOptimizerTest {
String inputSQL = "select s1 from root.laptop.d1 where s1 < 10";
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(inputSQL);
SingleSeriesExpression seriesExpression =
- new SingleSeriesExpression(new Path("root.laptop.d1", "s1"), ValueFilter.lt(10));
+ new SingleSeriesExpression(new Path("root.laptop.d1", "s1", true), ValueFilter.lt(10));
assertEquals(seriesExpression.toString(), ((RawDataQueryPlan) plan).getExpression().toString());
}
@@ -130,9 +130,11 @@ public class ConcatOptimizerTest {
IExpression expression =
BinaryExpression.and(
BinaryExpression.and(
- new SingleSeriesExpression(new Path("root.laptop.d1", "s1"), ValueFilter.lt(10)),
- new SingleSeriesExpression(new Path("root.laptop.d2", "s1"), ValueFilter.lt(10))),
- new SingleSeriesExpression(new Path("root.laptop.d3", "s1"), ValueFilter.lt(10)));
+ new SingleSeriesExpression(
+ new Path("root.laptop.d1", "s1", true), ValueFilter.lt(10)),
+ new SingleSeriesExpression(
+ new Path("root.laptop.d2", "s1", true), ValueFilter.lt(10))),
+ new SingleSeriesExpression(new Path("root.laptop.d3", "s1", true), ValueFilter.lt(10)));
assertEquals(expression.toString(), ((RawDataQueryPlan) plan).getExpression().toString());
}
}
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/physical/PhysicalPlanTest.java b/server/src/test/java/org/apache/iotdb/db/qp/physical/PhysicalPlanTest.java
index 5692624d3e..d37e5f5f42 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/physical/PhysicalPlanTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/physical/PhysicalPlanTest.java
@@ -666,7 +666,7 @@ public class PhysicalPlanTest {
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
new SingleSeriesExpression(
- new Path("root.vehicle.d1", "s1"),
+ new Path("root.vehicle.d1", "s1", true),
new OrFilter(
new AndFilter(TimeFilter.gt(50), TimeFilter.ltEq(100)), ValueFilter.lt(10.0)));
assertEquals(expect.toString(), queryFilter.toString());
@@ -680,7 +680,7 @@ public class PhysicalPlanTest {
IExpression expect =
new SingleSeriesExpression(
- new Path("root.vehicle.d1", "s1"),
+ new Path("root.vehicle.d1", "s1", true),
new AndFilter(
ValueFilter.lt(10.0), new AndFilter(TimeFilter.gt(50), TimeFilter.ltEq(100))));
@@ -697,7 +697,7 @@ public class PhysicalPlanTest {
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
new SingleSeriesExpression(
- new Path("root.vehicle.d1", "s1"),
+ new Path("root.vehicle.d1", "s1", true),
FilterFactory.or(ValueFilter.gt(20.0), ValueFilter.lt(10.0)));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -754,7 +754,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(20.5e3));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(20.5e3));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -764,7 +764,8 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(20.5e-3));
+ new SingleSeriesExpression(
+ new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(20.5e-3));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -774,7 +775,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(2.5));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(2.5));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -784,7 +785,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(2.5));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(2.5));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -794,7 +795,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(-2.5));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(-2.5));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -804,7 +805,8 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(-2.5e-1));
+ new SingleSeriesExpression(
+ new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(-2.5e-1));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -814,7 +816,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(2.5e+2));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(2.5e+2));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -824,7 +826,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(0.2e+2));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(0.2e+2));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -834,7 +836,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(0.2));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(0.2));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -844,7 +846,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(2.0));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(2.0));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -854,7 +856,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(2.0));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(2.0));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -864,7 +866,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(-2.0));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(-2.0));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -874,7 +876,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(-0.2));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(-0.2));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -884,7 +886,7 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.gt(-20.0));
+ new SingleSeriesExpression(new Path("root.vehicle.d1", "s1", true), ValueFilter.gt(-20.0));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -899,7 +901,7 @@ public class PhysicalPlanTest {
values.add(40.0f);
IExpression expect =
new SingleSeriesExpression(
- new Path("root.vehicle.d1", "s1"), ValueFilter.in(values, false));
+ new Path("root.vehicle.d1", "s1", true), ValueFilter.in(values, false));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -913,7 +915,8 @@ public class PhysicalPlanTest {
values.add(30.0f);
values.add(40.0f);
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d1", "s1"), ValueFilter.in(values, true));
+ new SingleSeriesExpression(
+ new Path("root.vehicle.d1", "s1", true), ValueFilter.in(values, true));
assertEquals(expect.toString(), queryFilter.toString());
sqlStr = "SELECT s1 FROM root.vehicle.d1 WHERE not(s1 not in (25, 30, 40))";
@@ -921,7 +924,7 @@ public class PhysicalPlanTest {
queryFilter = ((RawDataQueryPlan) plan).getExpression();
expect =
new SingleSeriesExpression(
- new Path("root.vehicle.d1", "s1"), ValueFilter.in(values, false));
+ new Path("root.vehicle.d1", "s1", true), ValueFilter.in(values, false));
assertEquals(expect.toString(), queryFilter.toString());
}
@@ -1056,13 +1059,15 @@ public class PhysicalPlanTest {
RawDataQueryPlan plan = (RawDataQueryPlan) processor.parseSQLToPhysicalPlan(sqlStr);
Assert.assertEquals(1, plan.getDeduplicatedPaths().size());
Assert.assertEquals(1, plan.getDeduplicatedDataTypes().size());
- Assert.assertEquals(new Path("root.vehicle.d1", "s1"), plan.getDeduplicatedPaths().get(0));
+ Assert.assertEquals(
+ new Path("root.vehicle.d1", "s1", true), plan.getDeduplicatedPaths().get(0));
sqlStr = "select count(*) from root.vehicle.d1,root.vehicle.d1,root.vehicle.d1";
plan = (RawDataQueryPlan) processor.parseSQLToPhysicalPlan(sqlStr);
Assert.assertEquals(1, plan.getDeduplicatedPaths().size());
Assert.assertEquals(1, plan.getDeduplicatedDataTypes().size());
- Assert.assertEquals(new Path("root.vehicle.d1", "s1"), plan.getDeduplicatedPaths().get(0));
+ Assert.assertEquals(
+ new Path("root.vehicle.d1", "s1", true), plan.getDeduplicatedPaths().get(0));
}
@Test
@@ -1071,8 +1076,8 @@ public class PhysicalPlanTest {
String sqlStr2 = "SELECT last s1 FROM root.vehicle.d1, root.vehicle.d2";
PhysicalPlan plan1 = processor.parseSQLToPhysicalPlan(sqlStr1);
PhysicalPlan plan2 = processor.parseSQLToPhysicalPlan(sqlStr2);
- Path path1 = new Path("root.vehicle.d1", "s1");
- Path path2 = new Path("root.vehicle.d2", "s1");
+ Path path1 = new Path("root.vehicle.d1", "s1", true);
+ Path path2 = new Path("root.vehicle.d2", "s1", true);
assertEquals(1, plan1.getPaths().size());
assertEquals(path1.toString(), plan1.getPaths().get(0).getFullPath());
assertEquals(2, plan2.getPaths().size());
@@ -1452,7 +1457,8 @@ public class PhysicalPlanTest {
PhysicalPlan plan = processor.parseSQLToPhysicalPlan(sqlStr);
IExpression queryFilter = ((RawDataQueryPlan) plan).getExpression();
IExpression expect =
- new SingleSeriesExpression(new Path("root.vehicle.d5", "s1"), ValueFilter.like("string*"));
+ new SingleSeriesExpression(
+ new Path("root.vehicle.d5", "s1", true), ValueFilter.like("string*"));
assertEquals(expect.toString(), queryFilter.toString());
}
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java b/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
index 1b20132147..9972a5e188 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
@@ -340,7 +340,7 @@ public class TsFileRewriteToolTest {
String device = entry.getKey();
for (String sensor : entry.getValue()) {
totalSensorCount++;
- paths.add(new Path(device, sensor));
+ paths.add(new Path(device, sensor, true));
}
}
@@ -438,7 +438,7 @@ public class TsFileRewriteToolTest {
try (TsFileSequenceReader reader = new TsFileSequenceReader(tsFilePath);
TsFileReader readTsFile = new TsFileReader(reader)) {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path(device, sensor));
+ paths.add(new Path(device, sensor, true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet queryDataSet = readTsFile.query(queryExpression);
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
index 9261539741..aa470edef6 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
@@ -299,13 +299,13 @@ public class WALRecoverManagerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_WITH_WAL_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
assertEquals(2, chunkMetadataList.size());
Chunk chunk = reader.readMemChunk(chunkMetadataList.get(0));
@@ -326,13 +326,13 @@ public class WALRecoverManagerTest {
// region check file without wal
// check file content
reader = new TsFileSequenceReader(FILE_WITHOUT_WAL_NAME);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
assertEquals(1, chunkMetadataList.size());
chunk = reader.readMemChunk(chunkMetadataList.get(0));
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/SealedTsFileRecoverPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/SealedTsFileRecoverPerformerTest.java
index 9dbd87ef25..ec46f0e9a0 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/SealedTsFileRecoverPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/SealedTsFileRecoverPerformerTest.java
@@ -100,13 +100,13 @@ public class SealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
// check .resource file in memory
@@ -142,13 +142,13 @@ public class SealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
// check .resource file in memory
@@ -179,13 +179,13 @@ public class SealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
// check .resource file in memory
@@ -245,13 +245,13 @@ public class SealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
assertEquals(1, chunkMetadataList.size());
Chunk chunk = reader.readMemChunk(chunkMetadataList.get(0));
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
index d6ebf64d70..65305f5e6e 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
@@ -146,13 +146,13 @@ public class UnsealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
assertEquals(2, chunkMetadataList.size());
Chunk chunk = reader.readMemChunk(chunkMetadataList.get(0));
@@ -201,13 +201,13 @@ public class UnsealedTsFileRecoverPerformerTest {
// check file content
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
List<ChunkMetadata> chunkMetadataList =
- reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1"));
+ reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE1_NAME, "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path(DEVICE2_NAME, "s2", true));
assertNotNull(chunkMetadataList);
assertEquals(1, chunkMetadataList.size());
Chunk chunk = reader.readMemChunk(chunkMetadataList.get(0));
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
index 8f581ac5d3..0f579eae62 100755
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/DefaultSource.scala
@@ -19,9 +19,6 @@
package org.apache.iotdb.spark.tsfile
-import java.io.{ObjectInputStream, ObjectOutputStream, _}
-import java.net.URI
-
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileStatus, Path}
import org.apache.hadoop.mapreduce.Job
@@ -41,9 +38,10 @@ import org.apache.spark.sql.execution.datasources.{FileFormat, OutputWriterFacto
import org.apache.spark.sql.sources.{DataSourceRegister, Filter}
import org.apache.spark.sql.types._
import org.slf4j.LoggerFactory
+
+import java.io._
+import java.net.URI
import scala.collection.JavaConversions._
-import scala.collection.mutable
-import scala.collection.mutable.ListBuffer
private[tsfile] class DefaultSource extends FileFormat with DataSourceRegister {
@@ -189,7 +187,7 @@ private[tsfile] class DefaultSource extends FileFormat with DataSourceRegister {
}
else {
val pos = paths.indexOf(new org.apache.iotdb.tsfile.read.common.Path(deviceName,
- field.name))
+ field.name, true))
var curField: Field = null
if (pos != -1) {
curField = fields.get(pos)
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
index 2af440b934..9ee25c1421 100644
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
@@ -19,16 +19,14 @@
package org.apache.iotdb.spark.tsfile
-import java.util
-
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.FileStatus
import org.apache.iotdb.hadoop.fileSystem.HDFSInput
import org.apache.iotdb.spark.tsfile.qp.QueryProcessor
-import org.apache.iotdb.tsfile.common.constant.QueryConstant
-import org.apache.iotdb.tsfile.file.metadata.enums.{TSDataType, TSEncoding}
import org.apache.iotdb.spark.tsfile.qp.common.{BasicOperator, FilterOperator, SQLConstant, TSQueryPlan}
+import org.apache.iotdb.tsfile.common.constant.QueryConstant
import org.apache.iotdb.tsfile.file.metadata.TsFileMetadata
+import org.apache.iotdb.tsfile.file.metadata.enums.{TSDataType, TSEncoding}
import org.apache.iotdb.tsfile.read.TsFileSequenceReader
import org.apache.iotdb.tsfile.read.common.Path
import org.apache.iotdb.tsfile.read.expression.impl.{BinaryExpression, GlobalTimeExpression, SingleSeriesExpression}
@@ -36,33 +34,34 @@ import org.apache.iotdb.tsfile.read.expression.{IExpression, QueryExpression}
import org.apache.iotdb.tsfile.read.filter.{TimeFilter, ValueFilter}
import org.apache.iotdb.tsfile.write.record.TSRecord
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint
-import org.apache.iotdb.tsfile.write.schema.{IMeasurementSchema, MeasurementSchema, Schema}
+import org.apache.iotdb.tsfile.write.schema.{MeasurementSchema, Schema}
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.sources._
import org.apache.spark.sql.types._
+import java.util
import scala.collection.JavaConversions._
import scala.collection.mutable
import scala.collection.mutable.ListBuffer
/**
- * This object contains methods that are used to convert schema and data between SparkSQL
- * and TSFile.
- *
- */
+ * This object contains methods that are used to convert schema and data between SparkSQL
+ * and TSFile.
+ *
+ */
object NarrowConverter extends Converter {
val TEMPLATE_NAME = "spark_template"
val DEVICE_NAME = "device_name"
/**
- * Get union series in all tsfiles.
- * e.g. (tsfile1:s1,s2) & (tsfile2:s2,s3) = s1,s2,s3
- *
- * @param files tsfiles
- * @param conf hadoop configuration
- * @return union series
- */
+ * Get union series in all tsfiles.
+ * e.g. (tsfile1:s1,s2) & (tsfile2:s2,s3) = s1,s2,s3
+ *
+ * @param files tsfiles
+ * @param conf hadoop configuration
+ * @return union series
+ */
def getUnionSeries(files: Seq[FileStatus], conf: Configuration): util.ArrayList[Series] = {
val unionSeries = new util.ArrayList[Series]()
var seriesSet: mutable.Set[String] = mutable.Set()
@@ -88,12 +87,12 @@ object NarrowConverter extends Converter {
/**
- * Construct fields with the TSFile data type converted to the SparkSQL data type.
- *
- * @param tsfileSchema tsfileSchema
- * @param addTimeField true to add a time field; false to not
- * @return the converted list of fields
- */
+ * Construct fields with the TSFile data type converted to the SparkSQL data type.
+ *
+ * @param tsfileSchema tsfileSchema
+ * @param addTimeField true to add a time field; false to not
+ * @return the converted list of fields
+ */
override def toSqlField(tsfileSchema: util.ArrayList[Series], addTimeField: Boolean):
ListBuffer[StructField] = {
val fields = new ListBuffer[StructField]()
@@ -120,12 +119,12 @@ object NarrowConverter extends Converter {
/**
- * Prepare queriedSchema from requiredSchema.
- *
- * @param requiredSchema requiredSchema
- * @param tsFileMetaData tsFileMetaData
- * @return
- */
+ * Prepare queriedSchema from requiredSchema.
+ *
+ * @param requiredSchema requiredSchema
+ * @param tsFileMetaData tsFileMetaData
+ * @return
+ */
def prepSchema(requiredSchema: StructType, tsFileMetaData: TsFileMetadata,
reader: TsFileSequenceReader): StructType = {
var queriedSchema: StructType = new StructType()
@@ -158,13 +157,13 @@ object NarrowConverter extends Converter {
/**
- * Construct queryExpression based on queriedSchema and filters.
- *
- * @param schema schema
- * @param device_name device_names
- * @param measurement_name measurement_names
- * @return query expression
- */
+ * Construct queryExpression based on queriedSchema and filters.
+ *
+ * @param schema schema
+ * @param device_name device_names
+ * @param measurement_name measurement_names
+ * @return query expression
+ */
def toQueryExpression(schema: StructType,
device_name: util.List[String],
measurement_name: util.Set[String],
@@ -210,11 +209,11 @@ object NarrowConverter extends Converter {
}
/**
- * Used in toQueryConfigs() to convert one query plan to one QueryConfig.
- *
- * @param queryPlan TsFile logical query plan
- * @return TsFile physical query plan
- */
+ * Used in toQueryConfigs() to convert one query plan to one QueryConfig.
+ *
+ * @param queryPlan TsFile logical query plan
+ * @return TsFile physical query plan
+ */
private def queryToExpression(schema: StructType, queryPlan: TSQueryPlan): QueryExpression = {
val selectedColumns = queryPlan.getPaths
val timeFilter = queryPlan.getTimeFilterOperator
@@ -244,11 +243,11 @@ object NarrowConverter extends Converter {
}
/**
- * Transform sparkSQL's filter binary tree to filterOperator binary tree.
- *
- * @param node filter tree's node
- * @return TSFile filterOperator binary tree
- */
+ * Transform sparkSQL's filter binary tree to filterOperator binary tree.
+ *
+ * @param node filter tree's node
+ * @return TSFile filterOperator binary tree
+ */
private def transformFilter(node: Filter): FilterOperator = {
var operator: FilterOperator = null
node match {
@@ -297,12 +296,12 @@ object NarrowConverter extends Converter {
}
/**
- * Transform SparkSQL's filter binary tree to TsFile's filter expression.
- *
- * @param schema to get relative columns' dataType information
- * @param node filter tree's node
- * @return TSFile filter expression
- */
+ * Transform SparkSQL's filter binary tree to TsFile's filter expression.
+ *
+ * @param schema to get relative columns' dataType information
+ * @param node filter tree's node
+ * @return TSFile filter expression
+ */
private def transformFilterToExpression(schema: StructType, node: FilterOperator,
device_name: String): IExpression = {
var filter: IExpression = null
@@ -402,7 +401,7 @@ object NarrowConverter extends Converter {
val index = fieldNames.indexOf(nodeName)
if (index == -1) {
// placeholder for an invalid filter in the current TsFile
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName), null)
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true), null)
filter
} else {
val dataType = schema.get(index).dataType
@@ -411,27 +410,27 @@ object NarrowConverter extends Converter {
case FilterTypes.Eq =>
dataType match {
case BooleanType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(new java.lang.Boolean(nodeValue)))
filter
case IntegerType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(new java.lang.Integer(nodeValue)))
filter
case LongType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(new java.lang.Long(nodeValue)))
filter
case FloatType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(new java.lang.Float(nodeValue)))
filter
case DoubleType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(new java.lang.Double(nodeValue)))
filter
case StringType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.eq(nodeValue))
filter
case other => throw new UnsupportedOperationException(s"Unsupported type $other")
@@ -439,19 +438,19 @@ object NarrowConverter extends Converter {
case FilterTypes.Gt =>
dataType match {
case IntegerType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gt(new java.lang.Integer(nodeValue)))
filter
case LongType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gt(new java.lang.Long(nodeValue)))
filter
case FloatType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gt(new java.lang.Float(nodeValue)))
filter
case DoubleType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gt(new java.lang.Double(nodeValue)))
filter
case other => throw new UnsupportedOperationException(s"Unsupported type $other")
@@ -459,19 +458,19 @@ object NarrowConverter extends Converter {
case FilterTypes.GtEq =>
dataType match {
case IntegerType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gtEq(new java.lang.Integer(nodeValue)))
filter
case LongType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gtEq(new java.lang.Long(nodeValue)))
filter
case FloatType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gtEq(new java.lang.Float(nodeValue)))
filter
case DoubleType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.gtEq(new java.lang.Double(nodeValue)))
filter
case other => throw new UnsupportedOperationException(s"Unsupported type $other")
@@ -479,19 +478,19 @@ object NarrowConverter extends Converter {
case FilterTypes.Lt =>
dataType match {
case IntegerType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.lt(new java.lang.Integer(nodeValue)))
filter
case LongType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.lt(new java.lang.Long(nodeValue)))
filter
case FloatType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.lt(new java.lang.Float(nodeValue)))
filter
case DoubleType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.lt(new java.lang.Double(nodeValue)))
filter
case other => throw new UnsupportedOperationException(s"Unsupported type $other")
@@ -499,19 +498,19 @@ object NarrowConverter extends Converter {
case FilterTypes.LtEq =>
dataType match {
case IntegerType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.ltEq(new java.lang.Integer(nodeValue)))
filter
case LongType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.ltEq(new java.lang.Long(nodeValue)))
filter
case FloatType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.ltEq(new java.lang.Float(nodeValue)))
filter
case DoubleType =>
- val filter = new SingleSeriesExpression(new Path(device_name, nodeName),
+ val filter = new SingleSeriesExpression(new Path(device_name, nodeName, true),
ValueFilter.ltEq(new java.lang.Double(nodeValue)))
filter
case other => throw new UnsupportedOperationException(s"Unsupported type $other")
@@ -521,12 +520,12 @@ object NarrowConverter extends Converter {
}
/**
- * Construct MeasurementSchema from the given field.
- *
- * @param field field
- * @param options encoding options
- * @return MeasurementSchema
- */
+ * Construct MeasurementSchema from the given field.
+ *
+ * @param field field
+ * @param options encoding options
+ * @return MeasurementSchema
+ */
def getSeriesSchema(field: StructField, options: Map[String, String]): MeasurementSchema = {
val dataType = getTsDataType(field.dataType)
val encodingStr = dataType match {
@@ -543,12 +542,12 @@ object NarrowConverter extends Converter {
}
/**
- * Given a SparkSQL struct type, generate the TsFile schema.
- * Note: Measurements of the same name should have the same schema.
- *
- * @param structType given sql schema
- * @return TsFile schema
- */
+ * Given a SparkSQL struct type, generate the TsFile schema.
+ * Note: Measurements of the same name should have the same schema.
+ *
+ * @param structType given sql schema
+ * @return TsFile schema
+ */
def toTsFileSchema(structType: StructType, options: Map[String, String]): Schema = {
val schema = new Schema()
structType.fields.filter(f => {
@@ -561,11 +560,11 @@ object NarrowConverter extends Converter {
}
/**
- * Convert a row in the spark table to a list of TSRecord.
- *
- * @param row given spark sql row
- * @return TSRecord
- */
+ * Convert a row in the spark table to a list of TSRecord.
+ *
+ * @param row given spark sql row
+ * @return TSRecord
+ */
def toTsRecord(row: InternalRow, dataSchema: StructType): TSRecord = {
val time = row.getLong(0)
val res = new TSRecord(time, row.getString(1))
diff --git a/spark-tsfile/src/test/scala/org/apache/iotdb/spark/tsfile/TSFileSuit.scala b/spark-tsfile/src/test/scala/org/apache/iotdb/spark/tsfile/TSFileSuit.scala
index 53bf186a67..a802e97da4 100644
--- a/spark-tsfile/src/test/scala/org/apache/iotdb/spark/tsfile/TSFileSuit.scala
+++ b/spark-tsfile/src/test/scala/org/apache/iotdb/spark/tsfile/TSFileSuit.scala
@@ -19,10 +19,6 @@
package org.apache.iotdb.spark.tsfile
-import java.io.{ByteArrayOutputStream, File}
-import java.net.URI
-import java.util
-
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.Path
import org.apache.iotdb.hadoop.fileSystem.HDFSInput
@@ -35,6 +31,10 @@ import org.apache.spark.sql.types._
import org.junit.Assert
import org.scalatest.{BeforeAndAfterAll, FunSuite}
+import java.io.{ByteArrayOutputStream, File}
+import java.net.URI
+import java.util
+
class TSFileSuit extends FunSuite with BeforeAndAfterAll {
@@ -343,7 +343,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(1).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -361,7 +361,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val actual = outCapture.toByteArray.map(_.toChar)
val expect =
- "+------+-----------+--------+--------+--------+\n" +
+ "+------+-----------+--------+--------+--------+\n" +
"|time |device_name|sensor_3|sensor_1|sensor_2|\n" +
"+------+-----------+--------+--------+--------+\n" +
"|131042|device_2 |true |131042 |131042.0|\n" +
@@ -406,7 +406,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -456,7 +456,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -479,7 +479,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -503,7 +503,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -526,7 +526,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -549,7 +549,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -572,7 +572,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -596,7 +596,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
@@ -620,7 +620,7 @@ device_2: 400000 rows, time range [0,799998], interval 2
val in = new HDFSInput(new Path(new URI(tsfile4)), conf)
val reader: TsFileSequenceReader = new TsFileSequenceReader(in)
val tsFileMetaData = reader.readFileMetadata
- val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1"))
+ val chunkMetadataList = reader.getChunkMetadataList(new common.Path("device_1", "sensor_1", true))
val endOffsetOfChunkGroup = chunkMetadataList.get(2).getOffsetOfChunkHeader
val tmp = spark.conf.get("spark.sql.files.maxPartitionBytes")
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 0c80ddfbe5..8543f1fc8d 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -707,7 +707,7 @@ public class TsFileSequenceReader implements AutoCloseable {
for (String device : getAllDevices()) {
Map<String, TimeseriesMetadata> timeseriesMetadataMap = readDeviceMetadata(device);
for (String measurementId : timeseriesMetadataMap.keySet()) {
- paths.add(new Path(device, measurementId));
+ paths.add(new Path(device, measurementId, true));
}
}
return paths;
@@ -752,7 +752,8 @@ public class TsFileSequenceReader implements AutoCloseable {
paths.add(
new Path(
startEndPair.left,
- TimeseriesMetadata.deserializeFrom(nextBuffer, false).getMeasurementId()));
+ TimeseriesMetadata.deserializeFrom(nextBuffer, false).getMeasurementId(),
+ true));
}
return paths;
} catch (IOException e) {
@@ -1542,7 +1543,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (newSchema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
newSchema.putIfAbsent(
- new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
+ new Path(lastDeviceId, tsSchema.getMeasurementId(), true), tsSchema);
}
}
measurementSchemaList = new ArrayList<>();
@@ -1561,7 +1562,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (newSchema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
newSchema.putIfAbsent(
- new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
+ new Path(lastDeviceId, tsSchema.getMeasurementId(), true), tsSchema);
}
}
measurementSchemaList = new ArrayList<>();
@@ -1583,7 +1584,8 @@ public class TsFileSequenceReader implements AutoCloseable {
// schema of last chunk group
if (newSchema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
- newSchema.putIfAbsent(new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
+ newSchema.putIfAbsent(
+ new Path(lastDeviceId, tsSchema.getMeasurementId(), true), tsSchema);
}
}
// last chunk group Metadata
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
index 9280e8e7f5..043a950099 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
@@ -93,11 +93,18 @@ public class Path implements Serializable, Comparable<Path> {
*
* @param device root.deviceType.d1
* @param measurement s1 , does not contain TsFileConstant.PATH_SEPARATOR
+ * @param needCheck need to validate the correctness of the path
*/
- public Path(String device, String measurement) {
+ public Path(String device, String measurement, boolean needCheck) {
if (device == null || measurement == null) {
throw new PathParseException(ILLEGAL_PATH_ARGUMENT);
}
+ if (!needCheck) {
+ this.measurement = measurement;
+ this.device = device;
+ this.fullPath = device + "." + measurement;
+ return;
+ }
// use PathNodesGenerator to check whether path is legal.
if (!StringUtils.isEmpty(device) && !StringUtils.isEmpty(measurement)) {
String path = device + TsFileConstant.PATH_SEPARATOR + measurement;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
index 86c32135da..c5fea77b21 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/controller/MetadataQuerierByFileImpl.java
@@ -130,7 +130,8 @@ public class MetadataQuerierByFileImpl implements IMetadataQuerier {
} else {
measurementId = ((TimeseriesMetadata) timeseriesMetadata).getMeasurementId();
}
- this.chunkMetaDataCache.put(new Path(selectedDevice, measurementId), chunkMetadataList);
+ this.chunkMetaDataCache.put(
+ new Path(selectedDevice, measurementId, true), chunkMetadataList);
count += chunkMetadataList.size();
if (count == CACHED_ENTRY_NUMBER) {
enough = true;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index 53ff109f50..7cb1868e98 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -503,7 +503,7 @@ public class TsFileIOWriter implements AutoCloseable {
chunkGroupMetaData.getChunkMetadataList().iterator();
while (chunkMetaDataIterator.hasNext()) {
IChunkMetadata chunkMetaData = chunkMetaDataIterator.next();
- Path path = new Path(deviceId, chunkMetaData.getMeasurementUid());
+ Path path = new Path(deviceId, chunkMetaData.getMeasurementUid(), true);
int startTimeIdx = startTimeIdxes.get(path);
List<Long> pathChunkStartTimes = chunkStartTimes.get(path);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/DiskTSMIterator.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
index 2ed2b57f08..b6f6df8556 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
@@ -119,7 +119,7 @@ public class DiskTSMIterator extends TSMIterator {
}
updateCurrentPos();
return new Pair<>(
- new Path(currentDevice, measurementUid),
+ new Path(currentDevice, measurementUid, false),
constructOneTimeseriesMetadata(measurementUid, chunkMetadataList));
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/TSMIterator.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/TSMIterator.java
index 38425044ac..5d17e0ab7e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/TSMIterator.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/tsmiterator/TSMIterator.java
@@ -119,7 +119,7 @@ public class TSMIterator {
chunkMetadataMap
.get(chunkGroupMetadata.getDevice())
.computeIfAbsent(
- new Path(chunkGroupMetadata.getDevice(), chunkMetadata.getMeasurementUid()),
+ new Path(chunkGroupMetadata.getDevice(), chunkMetadata.getMeasurementUid(), false),
x -> new ArrayList<>())
.add(chunkMetadata);
}
@@ -129,7 +129,8 @@ public class TSMIterator {
chunkMetadataMap
.computeIfAbsent(currentDevice, x -> new TreeMap<>())
.computeIfAbsent(
- new Path(currentDevice, chunkMetadata.getMeasurementUid()), x -> new ArrayList<>())
+ new Path(currentDevice, chunkMetadata.getMeasurementUid(), false),
+ x -> new ArrayList<>())
.add(chunkMetadata);
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java
index 2642a75c37..92505a9641 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java
@@ -133,7 +133,7 @@ public class MeasurementChunkMetadataListMapIteratorTest {
expectedDeviceMeasurementChunkMetadataListMap
.computeIfAbsent(device, d -> new HashMap<>())
.computeIfAbsent(measurement, m -> new ArrayList<>())
- .addAll(fileReader.getChunkMetadataList(new Path(device, measurement)));
+ .addAll(fileReader.getChunkMetadataList(new Path(device, measurement, true)));
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadInPartitionTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadInPartitionTest.java
index 0ea64e8629..788378015b 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadInPartitionTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadInPartitionTest.java
@@ -72,7 +72,7 @@ public class ReadInPartitionTest {
// different test environments,
// we get metadata from the real-time generated TsFile instead of using a fixed
// parameter setting.
- List<ChunkMetadata> d1s6List = reader.getChunkMetadataList(new Path("d1", "s6"));
+ List<ChunkMetadata> d1s6List = reader.getChunkMetadataList(new Path("d1", "s6", true));
for (ChunkMetadata chunkMetaData : d1s6List) {
// get a series of [startTime, endTime] of d1.s6 from the chunkGroupMetaData of
// d1
@@ -89,7 +89,7 @@ public class ReadInPartitionTest {
d1chunkGroupMetaDataOffsetList.add(startEndOffsets);
}
- List<ChunkMetadata> d2s1List = reader.getChunkMetadataList(new Path("d2", "s1"));
+ List<ChunkMetadata> d2s1List = reader.getChunkMetadataList(new Path("d2", "s1", true));
for (ChunkMetadata chunkMetaData : d2s1List) {
d2s1timeRangeList.add(
new TimeRange(chunkMetaData.getStartTime(), chunkMetaData.getEndTime()));
@@ -105,8 +105,8 @@ public class ReadInPartitionTest {
@Test
public void test0() throws IOException {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet queryDataSet = roTsFile.query(queryExpression, 0L, 0L);
@@ -121,8 +121,8 @@ public class ReadInPartitionTest {
@Test
public void test1() throws IOException, QueryFilterOptimizationException {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet queryDataSet =
@@ -156,8 +156,8 @@ public class ReadInPartitionTest {
@Test
public void test2() throws IOException, QueryFilterOptimizationException {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
IExpression expression = new GlobalTimeExpression(TimeFilter.gt(50L));
QueryExpression queryExpression = QueryExpression.create(paths, expression);
@@ -193,10 +193,10 @@ public class ReadInPartitionTest {
@Test
public void test3() throws IOException, QueryFilterOptimizationException {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
Filter filter = ValueFilter.gt(10L);
- IExpression expression = new SingleSeriesExpression(new Path("d1", "s3"), filter);
+ IExpression expression = new SingleSeriesExpression(new Path("d1", "s3", true), filter);
QueryExpression queryExpression = QueryExpression.create(paths, expression);
QueryDataSet queryDataSet =
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadTest.java
index 2f1b9e34c3..817a0ed443 100755
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/ReadTest.java
@@ -66,7 +66,7 @@ public class ReadTest {
@Test
public void queryOneMeasurementWithoutFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
+ pathList.add(new Path("d1", "s1", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = roTsFile.query(queryExpression);
@@ -87,8 +87,8 @@ public class ReadTest {
@Test
public void queryTwoMeasurementsWithoutFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = roTsFile.query(queryExpression);
@@ -106,9 +106,10 @@ public class ReadTest {
@Test
public void queryTwoMeasurementsWithSingleFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d2", "s1"));
- pathList.add(new Path("d2", "s4"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.gt(9722L));
+ pathList.add(new Path("d2", "s1", true));
+ pathList.add(new Path("d2", "s4", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.gt(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -127,8 +128,9 @@ public class ReadTest {
@Test
public void queryOneMeasurementsWithSameFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d2", "s2"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.gt(9722L));
+ pathList.add(new Path("d2", "s2", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.gt(9722L));
QueryExpression queryExpression = QueryExpression.create(pathList, valFilter);
QueryDataSet dataSet = roTsFile.query(queryExpression);
@@ -154,10 +156,10 @@ public class ReadTest {
@Test
public void queryWithTwoSeriesTimeValueFilterCrossTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.notEq(9722L));
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.notEq(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -186,10 +188,10 @@ public class ReadTest {
@Test
public void queryWithCrossSeriesTimeValueFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.notEq(9722L));
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.notEq(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -221,9 +223,9 @@ public class ReadTest {
assertEquals(5, cnt);
pathList.clear();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
- valFilter = new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.ltEq(9082L));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
+ valFilter = new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.ltEq(9082L));
tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618906L)),
@@ -251,8 +253,9 @@ public class ReadTest {
@Test
public void queryBooleanTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s5"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d1", "s5"), ValueFilter.eq(false));
+ pathList.add(new Path("d1", "s5", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d1", "s5", true), ValueFilter.eq(false));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -281,7 +284,7 @@ public class ReadTest {
@Test
public void queryStringTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s4"));
+ pathList.add(new Path("d1", "s4", true));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -302,7 +305,7 @@ public class ReadTest {
Assert.assertEquals(1, cnt);
pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s4"));
+ pathList.add(new Path("d1", "s4", true));
tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -325,9 +328,9 @@ public class ReadTest {
@Test
public void queryFloatTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s6"));
+ pathList.add(new Path("d1", "s6", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d1", "s6"), ValueFilter.gt(103.0f));
+ new SingleSeriesExpression(new Path("d1", "s6", true), ValueFilter.gt(103.0f));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -356,8 +359,9 @@ public class ReadTest {
@Test
public void queryDoubleTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s7"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d1", "s7"), ValueFilter.gt(1.0));
+ pathList.add(new Path("d1", "s7", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d1", "s7", true), ValueFilter.gt(1.0));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618011L)),
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimePlainEncodeReadTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimePlainEncodeReadTest.java
index 13423d9817..20b3f4bb21 100755
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimePlainEncodeReadTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimePlainEncodeReadTest.java
@@ -69,7 +69,7 @@ public class TimePlainEncodeReadTest {
@Test
public void queryOneMeasurementWithoutFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
+ pathList.add(new Path("d1", "s1", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = roTsFile.query(queryExpression);
@@ -90,8 +90,8 @@ public class TimePlainEncodeReadTest {
@Test
public void queryTwoMeasurementsWithoutFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = roTsFile.query(queryExpression);
@@ -111,9 +111,10 @@ public class TimePlainEncodeReadTest {
@Test
public void queryTwoMeasurementsWithSingleFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d2", "s1"));
- pathList.add(new Path("d2", "s4"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.gt(9722L));
+ pathList.add(new Path("d2", "s1", true));
+ pathList.add(new Path("d2", "s4", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.gt(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -130,9 +131,9 @@ public class TimePlainEncodeReadTest {
@Test
public void queryWithTwoSeriesTimeValueFilterCrossTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d2", "s2"));
+ pathList.add(new Path("d2", "s2", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.notEq(9722L));
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.notEq(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -161,9 +162,10 @@ public class TimePlainEncodeReadTest {
@Test
public void queryWithCrossSeriesTimeValueFilterTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.gt(9722L));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.gt(9722L));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -195,12 +197,13 @@ public class TimePlainEncodeReadTest {
assertEquals(5, cnt);
pathList.clear();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s2"));
- valFilter = new SingleSeriesExpression(new Path("d1", "s1"), ValueFilter.ltEq(9321));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s2", true));
+ valFilter = new SingleSeriesExpression(new Path("d1", "s1", true), ValueFilter.ltEq(9321));
valFilter =
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d2", "s2"), ValueFilter.ltEq(9312L)), valFilter);
+ new SingleSeriesExpression(new Path("d2", "s2", true), ValueFilter.ltEq(9312L)),
+ valFilter);
tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618906L)),
@@ -238,8 +241,9 @@ public class TimePlainEncodeReadTest {
@Test
public void queryBooleanTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s5"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d1", "s5"), ValueFilter.eq(false));
+ pathList.add(new Path("d1", "s5", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d1", "s5", true), ValueFilter.eq(false));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -268,9 +272,9 @@ public class TimePlainEncodeReadTest {
@Test
public void queryStringTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s4"));
+ pathList.add(new Path("d1", "s4", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d1", "s4"), ValueFilter.gt(new Binary("dog97")));
+ new SingleSeriesExpression(new Path("d1", "s4", true), ValueFilter.gt(new Binary("dog97")));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -292,9 +296,9 @@ public class TimePlainEncodeReadTest {
Assert.assertEquals(1, cnt);
pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s4"));
+ pathList.add(new Path("d1", "s4", true));
valFilter =
- new SingleSeriesExpression(new Path("d1", "s4"), ValueFilter.lt(new Binary("dog97")));
+ new SingleSeriesExpression(new Path("d1", "s4", true), ValueFilter.lt(new Binary("dog97")));
tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -318,9 +322,9 @@ public class TimePlainEncodeReadTest {
@Test
public void queryFloatTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s6"));
+ pathList.add(new Path("d1", "s6", true));
IExpression valFilter =
- new SingleSeriesExpression(new Path("d1", "s6"), ValueFilter.gt(103.0f));
+ new SingleSeriesExpression(new Path("d1", "s6", true), ValueFilter.gt(103.0f));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618970L)),
@@ -349,8 +353,9 @@ public class TimePlainEncodeReadTest {
@Test
public void queryDoubleTest() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s7"));
- IExpression valFilter = new SingleSeriesExpression(new Path("d1", "s7"), ValueFilter.gt(7.0));
+ pathList.add(new Path("d1", "s7", true));
+ IExpression valFilter =
+ new SingleSeriesExpression(new Path("d1", "s7", true), ValueFilter.gt(7.0));
IExpression tFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(1480562618021L)),
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimeSeriesMetadataReadTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimeSeriesMetadataReadTest.java
index 0a26423930..bb21e7829a 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimeSeriesMetadataReadTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TimeSeriesMetadataReadTest.java
@@ -64,7 +64,7 @@ public class TimeSeriesMetadataReadTest {
@Test
public void testReadTimeseriesMetadata() throws IOException {
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_PATH);
- Path path = new Path("d1", "s1");
+ Path path = new Path("d1", "s1", true);
Set<String> set = new HashSet<>();
set.add("s1");
set.add("s2");
@@ -78,7 +78,7 @@ public class TimeSeriesMetadataReadTest {
Assert.assertEquals("s" + i, timeseriesMetadataList.get(i - 1).getMeasurementId());
}
- path = new Path("d1", "s5");
+ path = new Path("d1", "s5", true);
set.clear();
set.add("s5");
set.add("s6");
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
index 92ec1c00f5..0a2cb22c15 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileReaderTest.java
@@ -77,7 +77,7 @@ public class TsFileReaderTest {
tsFileConfig.setGroupSizeInByte(100 * 1024 * 1024);
TsFileWriter tsFileWriter = new TsFileWriter(file, new Schema(), tsFileConfig);
- Path path = new Path("t", "id");
+ Path path = new Path("t", "id", true);
tsFileWriter.registerTimeseries(
new Path(path.getDevice()),
new MeasurementSchema("id", TSDataType.INT32, TSEncoding.PLAIN, CompressionType.LZ4));
@@ -147,14 +147,14 @@ public class TsFileReaderTest {
IExpression IExpression =
BinaryExpression.or(
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d1", "s1"), filter),
- new SingleSeriesExpression(new Path("d1", "s4"), filter2)),
+ new SingleSeriesExpression(new Path("d1", "s1", true), filter),
+ new SingleSeriesExpression(new Path("d1", "s4", true), filter2)),
new GlobalTimeExpression(filter3));
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s4"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s4", true))
.setExpression(IExpression);
QueryDataSet queryDataSet = tsFile.query(queryExpression);
long aimedTimestamp = 1480562618000L;
@@ -166,8 +166,8 @@ public class TsFileReaderTest {
queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s4"));
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s4", true));
queryDataSet = tsFile.query(queryExpression);
aimedTimestamp = 1480562618000L;
int count = 0;
@@ -181,8 +181,8 @@ public class TsFileReaderTest {
queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s4"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s4", true))
.setExpression(new GlobalTimeExpression(filter3));
queryDataSet = tsFile.query(queryExpression);
aimedTimestamp = 1480562618000L;
@@ -211,8 +211,8 @@ public class TsFileReaderTest {
void queryTest2() throws IOException {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
IExpression expression = new GlobalTimeExpression(TimeFilter.gt(1480562664760L));
@@ -230,8 +230,8 @@ public class TsFileReaderTest {
void queryNonExistPathTest() throws Exception {
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d2", "s1", true));
IExpression expression = new GlobalTimeExpression(TimeFilter.gt(1480562664760L));
QueryExpression queryExpression = QueryExpression.create(paths, expression);
try {
@@ -249,10 +249,10 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s1", true));
long rowCount = queryAndPrint(paths, tsFileReader, null);
Assert.assertNotEquals(0, rowCount);
@@ -267,10 +267,10 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s2"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s2", true));
IExpression timeFilter =
BinaryExpression.and(
@@ -289,13 +289,13 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s2"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s2", true));
IExpression valueFilter =
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.ltEq(9L));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.ltEq(9L));
long rowCount = queryAndPrint(paths, tsFileReader, valueFilter);
Assert.assertNotEquals(0, rowCount);
}
@@ -309,15 +309,15 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s1", true));
IExpression valueFilter1 =
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.gtEq(100L));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.gtEq(100L));
IExpression valueFilter2 =
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.ltEq(10000L));
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.ltEq(10000L));
IExpression binaryExpression = BinaryExpression.and(valueFilter1, valueFilter2);
long rowCount = queryAndPrint(paths, tsFileReader, binaryExpression);
Assert.assertNotEquals(0, rowCount);
@@ -332,15 +332,15 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s1", true));
IExpression valueFilter =
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.gtEq(7000L)),
- new SingleSeriesExpression(new Path("d1", "s1"), ValueFilter.ltEq(10000L)));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.gtEq(7000L)),
+ new SingleSeriesExpression(new Path("d1", "s1", true), ValueFilter.ltEq(10000L)));
IExpression timeFilter =
BinaryExpression.and(
new GlobalTimeExpression(TimeFilter.gtEq(2000)),
@@ -359,15 +359,15 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s2"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s2", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s1", true));
IExpression valueFilter1 =
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.gtEq(100L));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.gtEq(100L));
IExpression valueFilter2 =
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.ltEq(10000L));
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.ltEq(10000L));
IExpression valueFilter = BinaryExpression.and(valueFilter1, valueFilter2);
IExpression timeFilter =
BinaryExpression.and(
@@ -387,15 +387,15 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s3"));
- paths.add(new Path("d2", "s1"));
- paths.add(new Path("d2", "s2"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s3", true));
+ paths.add(new Path("d2", "s1", true));
+ paths.add(new Path("d2", "s2", true));
IExpression valueFilter1 =
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.gtEq(100L));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.gtEq(100L));
IExpression valueFilter2 =
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.ltEq(10000L));
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.ltEq(10000L));
IExpression valueFilter = BinaryExpression.and(valueFilter1, valueFilter2);
IExpression timeFilter =
BinaryExpression.and(
@@ -415,16 +415,16 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s9"));
- paths.add(new Path("d2", "s1"));
- paths.add(new Path("d2", "s8"));
- paths.add(new Path("d9", "s8"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s9", true));
+ paths.add(new Path("d2", "s1", true));
+ paths.add(new Path("d2", "s8", true));
+ paths.add(new Path("d9", "s8", true));
IExpression valueFilter1 =
- new SingleSeriesExpression(new Path("d2", "s1"), ValueFilter.gtEq(100L));
+ new SingleSeriesExpression(new Path("d2", "s1", true), ValueFilter.gtEq(100L));
IExpression valueFilter2 =
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.ltEq(10000L));
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.ltEq(10000L));
IExpression valueFilter = BinaryExpression.and(valueFilter1, valueFilter2);
IExpression timeFilter =
BinaryExpression.and(
@@ -444,15 +444,15 @@ public class TsFileReaderTest {
try (TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(filePath)); ) {
// timeseries path for query
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
- paths.add(new Path("d1", "s9"));
- paths.add(new Path("d2", "s1"));
- paths.add(new Path("d9", "s8"));
+ paths.add(new Path("d1", "s1", true));
+ paths.add(new Path("d1", "s9", true));
+ paths.add(new Path("d2", "s1", true));
+ paths.add(new Path("d9", "s8", true));
IExpression valueFilter1 =
- new SingleSeriesExpression(new Path("d2", "s9"), ValueFilter.gtEq(100L));
+ new SingleSeriesExpression(new Path("d2", "s9", true), ValueFilter.gtEq(100L));
IExpression valueFilter2 =
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.ltEq(10000L));
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.ltEq(10000L));
IExpression valueFilter = BinaryExpression.and(valueFilter1, valueFilter2);
IExpression timeFilter =
BinaryExpression.and(
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/ChunkLoaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/ChunkLoaderTest.java
index a5101014bb..6a45815f8c 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/ChunkLoaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/ChunkLoaderTest.java
@@ -55,7 +55,7 @@ public class ChunkLoaderTest {
fileReader = new TsFileSequenceReader(FILE_PATH);
MetadataQuerierByFileImpl metadataQuerierByFile = new MetadataQuerierByFileImpl(fileReader);
List<IChunkMetadata> chunkMetadataList =
- metadataQuerierByFile.getChunkMetaDataList(new Path("d2", "s1"));
+ metadataQuerierByFile.getChunkMetaDataList(new Path("d2", "s1", true));
CachedChunkLoaderImpl seriesChunkLoader = new CachedChunkLoaderImpl(fileReader);
for (IChunkMetadata chunkMetaData : chunkMetadataList) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/IMetadataQuerierByFileImplTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/IMetadataQuerierByFileImplTest.java
index a6dcd92237..52fc8c7b3d 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/IMetadataQuerierByFileImplTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/controller/IMetadataQuerierByFileImplTest.java
@@ -46,7 +46,7 @@ public class IMetadataQuerierByFileImplTest {
public void before() throws IOException {
TsFileGeneratorForTest.generateFile(10000, 1024, 100);
reader = new TsFileSequenceReader(FILE_PATH);
- List<ChunkMetadata> d1s6List = reader.getChunkMetadataList(new Path("d1", "s6"));
+ List<ChunkMetadata> d1s6List = reader.getChunkMetadataList(new Path("d1", "s6", true));
for (ChunkMetadata chunkMetaData : d1s6List) {
// get a series of [startTime, endTime] of d1.s6 from the chunkGroupMetaData of
// d1
@@ -63,7 +63,7 @@ public class IMetadataQuerierByFileImplTest {
d1chunkGroupMetaDataOffsetList.add(startEndOffsets);
}
- List<ChunkMetadata> d2s1List = reader.getChunkMetadataList(new Path("d2", "s1"));
+ List<ChunkMetadata> d2s1List = reader.getChunkMetadataList(new Path("d2", "s1", true));
for (ChunkMetadata chunkMetaData : d2s1List) {
d2s1timeRangeList.add(
new TimeRange(chunkMetaData.getStartTime(), chunkMetaData.getEndTime()));
@@ -90,8 +90,8 @@ public class IMetadataQuerierByFileImplTest {
MetadataQuerierByFileImpl metadataQuerierByFile = new MetadataQuerierByFileImpl(reader);
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
ArrayList<TimeRange> resTimeRanges =
new ArrayList<>(metadataQuerierByFile.convertSpace2TimePartition(paths, 0L, 0L));
@@ -104,8 +104,8 @@ public class IMetadataQuerierByFileImplTest {
MetadataQuerierByFileImpl metadataQuerierByFile = new MetadataQuerierByFileImpl(reader);
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
long spacePartitionStartPos = d1chunkGroupMetaDataOffsetList.get(0)[0];
long spacePartitionEndPos = d1chunkGroupMetaDataOffsetList.get(1)[1];
@@ -127,8 +127,8 @@ public class IMetadataQuerierByFileImplTest {
MetadataQuerierByFileImpl metadataQuerierByFile = new MetadataQuerierByFileImpl(reader);
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s6"));
- paths.add(new Path("d2", "s1"));
+ paths.add(new Path("d1", "s6", true));
+ paths.add(new Path("d2", "s1", true));
long spacePartitionStartPos = d2chunkGroupMetaDataOffsetList.get(0)[0];
long spacePartitionEndPos = d2chunkGroupMetaDataOffsetList.get(0)[1];
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
index 63f6a726d5..2f0a643d25 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
@@ -44,10 +44,10 @@ public class IExpressionOptimizerTest {
@Before
public void before() {
selectedSeries = new ArrayList<>();
- selectedSeries.add(new Path("d1", "s1"));
- selectedSeries.add(new Path("d2", "s1"));
- selectedSeries.add(new Path("d1", "s2"));
- selectedSeries.add(new Path("d2", "s2"));
+ selectedSeries.add(new Path("d1", "s1", true));
+ selectedSeries.add(new Path("d2", "s1", true));
+ selectedSeries.add(new Path("d1", "s2", true));
+ selectedSeries.add(new Path("d2", "s2", true));
}
@After
@@ -80,20 +80,20 @@ public class IExpressionOptimizerTest {
FilterFactory.and(
FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L)), TimeFilter.gt(1400L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter filter2 =
FilterFactory.and(
FilterFactory.or(ValueFilter.gt(100.5f), ValueFilter.lt(50.6f)),
TimeFilter.gt(1400L));
SingleSeriesExpression singleSeriesExp2 =
- new SingleSeriesExpression(new Path("d1", "s2"), filter2);
+ new SingleSeriesExpression(new Path("d1", "s2", true), filter2);
Filter filter3 =
FilterFactory.or(
FilterFactory.or(ValueFilter.gt(100.5), ValueFilter.lt(50.6)), TimeFilter.gt(1400L));
SingleSeriesExpression singleSeriesExp3 =
- new SingleSeriesExpression(new Path("d2", "s2"), filter3);
+ new SingleSeriesExpression(new Path("d2", "s2", true), filter3);
IExpression expression =
BinaryExpression.and(
@@ -111,11 +111,11 @@ public class IExpressionOptimizerTest {
public void testOneTimeAndSeries() {
Filter filter1 = FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter filter2 = FilterFactory.or(ValueFilter.gt(100.5f), ValueFilter.lt(50.6f));
SingleSeriesExpression singleSeriesExp2 =
- new SingleSeriesExpression(new Path("d1", "s2"), filter2);
+ new SingleSeriesExpression(new Path("d1", "s2", true), filter2);
Filter timeFilter = TimeFilter.lt(14001234L);
IExpression globalTimeFilter = new GlobalTimeExpression(timeFilter);
@@ -136,7 +136,7 @@ public class IExpressionOptimizerTest {
public void testSeriesAndGlobalOrGlobal() {
Filter filter1 = FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter timeFilter = TimeFilter.lt(14001234L);
IExpression globalTimeFilter = new GlobalTimeExpression(timeFilter);
@@ -161,7 +161,7 @@ public class IExpressionOptimizerTest {
public void testSeriesAndGlobal() {
Filter filter1 = FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter timeFilter = TimeFilter.lt(14001234L);
IExpression globalTimeFilter = new GlobalTimeExpression(timeFilter);
@@ -181,11 +181,11 @@ public class IExpressionOptimizerTest {
public void testOneTimeOrSeries() {
Filter filter1 = FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter filter2 = FilterFactory.or(ValueFilter.gt(100.5f), ValueFilter.lt(50.6f));
SingleSeriesExpression singleSeriesExp2 =
- new SingleSeriesExpression(new Path("d1", "s2"), filter2);
+ new SingleSeriesExpression(new Path("d1", "s2", true), filter2);
Filter timeFilter = TimeFilter.lt(14001234L);
IExpression globalTimeFilter = new GlobalTimeExpression(timeFilter);
@@ -210,11 +210,11 @@ public class IExpressionOptimizerTest {
public void testTwoTimeCombine() {
Filter filter1 = FilterFactory.or(ValueFilter.gt(100L), ValueFilter.lt(50L));
SingleSeriesExpression singleSeriesExp1 =
- new SingleSeriesExpression(new Path("d2", "s1"), filter1);
+ new SingleSeriesExpression(new Path("d2", "s1", true), filter1);
Filter filter2 = FilterFactory.or(ValueFilter.gt(100.5f), ValueFilter.lt(50.6f));
SingleSeriesExpression singleSeriesExp2 =
- new SingleSeriesExpression(new Path("d1", "s2"), filter2);
+ new SingleSeriesExpression(new Path("d1", "s2", true), filter2);
IExpression globalTimeFilter1 = new GlobalTimeExpression(TimeFilter.lt(14001234L));
IExpression globalTimeFilter2 = new GlobalTimeExpression(TimeFilter.gt(14001000L));
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/executor/QueryExecutorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/executor/QueryExecutorTest.java
index 9c8fc2cf58..d0ee796f4d 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/executor/QueryExecutorTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/executor/QueryExecutorTest.java
@@ -77,15 +77,15 @@ public class QueryExecutorTest {
IExpression IExpression =
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d1", "s1"), filter),
- new SingleSeriesExpression(new Path("d1", "s4"), filter2));
+ new SingleSeriesExpression(new Path("d1", "s1", true), filter),
+ new SingleSeriesExpression(new Path("d1", "s4", true), filter2));
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
- .addSelectedPath(new Path("d1", "s4"))
- .addSelectedPath(new Path("d1", "s5"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
+ .addSelectedPath(new Path("d1", "s4", true))
+ .addSelectedPath(new Path("d1", "s5", true))
.setExpression(IExpression);
long startTimestamp = System.currentTimeMillis();
QueryDataSet queryDataSet = queryExecutorWithQueryFilter.execute(queryExpression);
@@ -104,11 +104,11 @@ public class QueryExecutorTest {
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
- .addSelectedPath(new Path("d1", "s3"))
- .addSelectedPath(new Path("d1", "s4"))
- .addSelectedPath(new Path("d1", "s5"));
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
+ .addSelectedPath(new Path("d1", "s3", true))
+ .addSelectedPath(new Path("d1", "s4", true))
+ .addSelectedPath(new Path("d1", "s5", true));
long aimedTimestamp = 1480562618000L;
int count = 0;
@@ -133,11 +133,11 @@ public class QueryExecutorTest {
FilterFactory.and(TimeFilter.gtEq(1480562618100L), TimeFilter.lt(1480562618200L)));
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
- .addSelectedPath(new Path("d1", "s3"))
- .addSelectedPath(new Path("d1", "s4"))
- .addSelectedPath(new Path("d1", "s5"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
+ .addSelectedPath(new Path("d1", "s3", true))
+ .addSelectedPath(new Path("d1", "s4", true))
+ .addSelectedPath(new Path("d1", "s5", true))
.setExpression(IExpression);
long aimedTimestamp = 1480562618100L;
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReadWriteTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReadWriteTest.java
index b82ab6eee8..4a0de2120a 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReadWriteTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReadWriteTest.java
@@ -76,15 +76,15 @@ public class ReadWriteTest {
IExpression valueExpression =
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d1", "s1"), ValueFilter.gt(1.0f)),
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.lt(22)));
+ new SingleSeriesExpression(new Path("d1", "s1", true), ValueFilter.gt(1.0f)),
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.lt(22)));
IExpression finalExpression = BinaryExpression.and(valueExpression, timeExpression);
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
.setExpression(finalExpression);
try (TsFileSequenceReader fileReader = new TsFileSequenceReader(tsfilePath)) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReaderByTimestampTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReaderByTimestampTest.java
index 45d1d05683..b302d0b109 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReaderByTimestampTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/ReaderByTimestampTest.java
@@ -63,7 +63,7 @@ public class ReaderByTimestampTest {
public void readByTimestamp() throws IOException {
CachedChunkLoaderImpl seriesChunkLoader = new CachedChunkLoaderImpl(fileReader);
List<IChunkMetadata> chunkMetadataList =
- metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1"));
+ metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1", true));
AbstractFileSeriesReader seriesReader =
new FileSeriesReader(seriesChunkLoader, chunkMetadataList, null);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadEmptyTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadEmptyTest.java
index d64db16ba9..c3b4349043 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadEmptyTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadEmptyTest.java
@@ -77,15 +77,15 @@ public class TimeGeneratorReadEmptyTest {
IExpression valueExpression =
BinaryExpression.or(
- new SingleSeriesExpression(new Path("d1", "s1"), ValueFilter.gt(1.0f)),
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.lt(22)));
+ new SingleSeriesExpression(new Path("d1", "s1", true), ValueFilter.gt(1.0f)),
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.lt(22)));
IExpression finalExpression = BinaryExpression.and(valueExpression, timeExpression);
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
.setExpression(finalExpression);
try (TsFileSequenceReader fileReader = new TsFileSequenceReader(tsfilePath)) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadWriteTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadWriteTest.java
index fe2981b494..cb2e75f08e 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadWriteTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorReadWriteTest.java
@@ -77,15 +77,15 @@ public class TimeGeneratorReadWriteTest {
IExpression valueExpression =
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d1", "s1"), ValueFilter.gt(1.0f)),
- new SingleSeriesExpression(new Path("d1", "s2"), ValueFilter.lt(22)));
+ new SingleSeriesExpression(new Path("d1", "s1", true), ValueFilter.gt(1.0f)),
+ new SingleSeriesExpression(new Path("d1", "s2", true), ValueFilter.lt(22)));
IExpression finalExpression = BinaryExpression.and(valueExpression, timeExpression);
QueryExpression queryExpression =
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
.setExpression(finalExpression);
try (TsFileSequenceReader fileReader = new TsFileSequenceReader(tsfilePath)) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorTest.java
index 28af28c07b..0ef043f32e 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/query/timegenerator/TimeGeneratorTest.java
@@ -74,9 +74,9 @@ public class TimeGeneratorTest {
IExpression IExpression =
BinaryExpression.or(
BinaryExpression.and(
- new SingleSeriesExpression(new Path("d1", "s1"), filter),
- new SingleSeriesExpression(new Path("d1", "s4"), filter2)),
- new SingleSeriesExpression(new Path("d1", "s1"), filter3));
+ new SingleSeriesExpression(new Path("d1", "s1", true), filter),
+ new SingleSeriesExpression(new Path("d1", "s4", true), filter2)),
+ new SingleSeriesExpression(new Path("d1", "s1", true), filter3));
TsFileTimeGenerator timestampGenerator =
new TsFileTimeGenerator(IExpression, chunkLoader, metadataQuerierByFile);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ChunkReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ChunkReaderTest.java
index 70606b3c3a..99b1dfabbc 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ChunkReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ChunkReaderTest.java
@@ -93,7 +93,7 @@ public class ChunkReaderTest {
for (int j = 0; j < measurementNum; j++) {
List<ChunkMetadata> chunkMetadataList =
tsFileSequenceReader.getChunkMetadataList(
- new Path(testStorageGroup + PATH_SEPARATOR + "d" + i, "s" + j));
+ new Path(testStorageGroup + PATH_SEPARATOR + "d" + i, "s" + j, true));
for (ChunkMetadata chunkMetadata : chunkMetadataList) {
Chunk chunk = tsFileSequenceReader.readMemChunk(chunkMetadata);
ChunkReader chunkReader = new ChunkReader(chunk, null);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/FakedTimeGenerator.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/FakedTimeGenerator.java
index 288c53ba5a..d03168b561 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/FakedTimeGenerator.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/FakedTimeGenerator.java
@@ -41,13 +41,14 @@ public class FakedTimeGenerator extends TimeGenerator {
BinaryExpression.and(
BinaryExpression.and(
new SingleSeriesExpression(
- new Path("d1", "s1"),
+ new Path("d1", "s1", true),
FilterFactory.and(TimeFilter.gtEq(3L), TimeFilter.ltEq(8L))),
new SingleSeriesExpression(
- new Path("d2", "s2"),
+ new Path("d2", "s2", true),
FilterFactory.and(TimeFilter.gtEq(1L), TimeFilter.ltEq(10L)))),
new SingleSeriesExpression(
- new Path("d2", "s2"), FilterFactory.and(TimeFilter.gtEq(2L), TimeFilter.ltEq(6L))));
+ new Path("d2", "s2", true),
+ FilterFactory.and(TimeFilter.gtEq(2L), TimeFilter.ltEq(6L))));
super.constructNode(expression);
}
@@ -70,7 +71,7 @@ public class FakedTimeGenerator extends TimeGenerator {
@Test
public void testTimeGenerator() throws IOException {
FakedTimeGenerator fakedTimeGenerator = new FakedTimeGenerator();
- Path path = new Path("d1", "s1");
+ Path path = new Path("d1", "s1", true);
long count = 0;
while (fakedTimeGenerator.hasNext()) {
fakedTimeGenerator.next();
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ReaderTest.java
index c4abefd754..8d8d448874 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/reader/ReaderTest.java
@@ -72,7 +72,7 @@ public class ReaderTest {
int count = 0;
CachedChunkLoaderImpl seriesChunkLoader = new CachedChunkLoaderImpl(fileReader);
List<IChunkMetadata> chunkMetadataList =
- metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1"));
+ metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1", true));
AbstractFileSeriesReader seriesReader =
new FileSeriesReader(seriesChunkLoader, chunkMetadataList, null);
@@ -90,7 +90,7 @@ public class ReaderTest {
}
Assert.assertEquals(rowCount, count);
- chunkMetadataList = metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s4"));
+ chunkMetadataList = metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s4", true));
seriesReader = new FileSeriesReader(seriesChunkLoader, chunkMetadataList, null);
count = 0;
@@ -108,7 +108,7 @@ public class ReaderTest {
public void readWithFilterTest() throws IOException {
CachedChunkLoaderImpl seriesChunkLoader = new CachedChunkLoaderImpl(fileReader);
List<IChunkMetadata> chunkMetadataList =
- metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1"));
+ metadataQuerierByFile.getChunkMetaDataList(new Path("d1", "s1", true));
Filter filter =
new FilterFactory()
@@ -116,7 +116,7 @@ public class ReaderTest {
FilterFactory.and(TimeFilter.gt(1480563570029L), TimeFilter.lt(1480563570033L)),
FilterFactory.and(ValueFilter.gtEq(9520331), ValueFilter.ltEq(9520361)));
SingleSeriesExpression singleSeriesExp =
- new SingleSeriesExpression(new Path("d1", "s1"), filter);
+ new SingleSeriesExpression(new Path("d1", "s1", true), filter);
AbstractFileSeriesReader seriesReader =
new FileSeriesReader(seriesChunkLoader, chunkMetadataList, singleSeriesExp.getFilter());
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
index 59d23be8d3..8d92b61d9a 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultSchemaTemplateTest.java
@@ -95,7 +95,7 @@ public class DefaultSchemaTemplateTest {
// use these paths(all measurements) for all the queries
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("d1", "s1"));
+ paths.add(new Path("d1", "s1", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet queryDataSet = readTsFile.query(queryExpression);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/MetadataIndexConstructorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/MetadataIndexConstructorTest.java
index f7137e95be..f24eb7afe2 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/MetadataIndexConstructorTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/MetadataIndexConstructorTest.java
@@ -376,19 +376,19 @@ public class MetadataIndexConstructorTest {
if (singleMeasurement != null) {
for (String measurement : singleMeasurement[i]) {
measurements.add(measurement);
- correctPaths.add(new Path(device, measurement).getFullPath());
+ correctPaths.add(new Path(device, measurement, true).getFullPath());
}
}
// multi-variable measurement
for (int vectorIndex = 0; vectorIndex < vectorMeasurement[i].length; vectorIndex++) {
measurements.add("");
- correctPaths.add(new Path(device, "").getFullPath());
+ correctPaths.add(new Path(device, "", true).getFullPath());
int measurementNum = vectorMeasurement[i][vectorIndex];
for (int measurementIndex = 0; measurementIndex < measurementNum; measurementIndex++) {
String measurementName =
measurementPrefix + generateIndexString(measurementIndex, measurementNum);
measurements.add(TsFileConstant.PATH_SEPARATOR + measurementName);
- correctPaths.add(new Path(device, measurementName).getFullPath());
+ correctPaths.add(new Path(device, measurementName, true).getFullPath());
}
}
Collections.sort(measurements);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/SameMeasurementsWithDifferentDataTypesTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/SameMeasurementsWithDifferentDataTypesTest.java
index 04bb4d9e48..50c39e9300 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/SameMeasurementsWithDifferentDataTypesTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/SameMeasurementsWithDifferentDataTypesTest.java
@@ -74,8 +74,8 @@ public class SameMeasurementsWithDifferentDataTypesTest {
@Test
public void testSameMeasurementsWithDiffrentDataTypes() throws IOException {
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d2", "s1"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d2", "s1", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
TsFileSequenceReader fileReader = new TsFileSequenceReader(tsfilePath);
TsFileReader tsFileReader = new TsFileReader(fileReader);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileReadWriteTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileReadWriteTest.java
index a4636dddcd..04a6c67e35 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileReadWriteTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileReadWriteTest.java
@@ -180,7 +180,7 @@ public class TsFileReadWriteTest {
TsFileSequenceReader reader = new TsFileSequenceReader(path);
TsFileReader readTsFile = new TsFileReader(reader);
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("device_1", "sensor_2"));
+ paths.add(new Path("device_1", "sensor_2", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
try {
QueryDataSet queryDataSet = readTsFile.query(queryExpression);
@@ -225,7 +225,7 @@ public class TsFileReadWriteTest {
TsFileSequenceReader reader = new TsFileSequenceReader(path);
TsFileReader readTsFile = new TsFileReader(reader);
ArrayList<Path> paths = new ArrayList<>();
- paths.add(new Path("device_1", "sensor_1"));
+ paths.add(new Path("device_1", "sensor_1", true));
QueryExpression queryExpression = QueryExpression.create(paths, null);
QueryDataSet queryDataSet = readTsFile.query(queryExpression);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileWriterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileWriterTest.java
index 638f7d5144..562d5a0e19 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileWriterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileWriterTest.java
@@ -325,8 +325,8 @@ public class TsFileWriterTest {
QueryDataSet dataSet =
tsFileReader.query(
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2")));
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true)));
assertFalse(dataSet.hasNext());
tsFileReader.close();
} catch (IOException e) {
@@ -345,9 +345,9 @@ public class TsFileWriterTest {
QueryDataSet dataSet =
tsFileReader.query(
QueryExpression.create()
- .addSelectedPath(new Path("d1", "s1"))
- .addSelectedPath(new Path("d1", "s2"))
- .addSelectedPath(new Path("d1", "s3")));
+ .addSelectedPath(new Path("d1", "s1", true))
+ .addSelectedPath(new Path("d1", "s2", true))
+ .addSelectedPath(new Path("d1", "s3", true)));
while (dataSet.hasNext()) {
RowRecord result = dataSet.next();
assertEquals(2, result.getFields().size());
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
index 04bb44cd9c..57f18a67e3 100755
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/WriteTest.java
@@ -122,7 +122,7 @@ public class WriteTest {
measurementArray.add(new MeasurementSchema("s4", TSDataType.BOOLEAN, TSEncoding.PLAIN));
pathArray = new ArrayList<>();
for (int i = 0; i < 5; i++) {
- pathArray.add(new Path("d1", "s" + i));
+ pathArray.add(new Path("d1", "s" + i, true));
}
schema = new Schema();
LOG.info(schema.toString());
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriterTest.java
index fd3e7aa549..d53365531d 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriterTest.java
@@ -99,8 +99,8 @@ public class ForceAppendTsFileWriterTest {
writer.close();
TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(file.getPath()));
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d1", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d1", "s2", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = tsFileReader.query(queryExpression);
RowRecord record = dataSet.next();
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriterTest.java
index d015ee8175..b0a67f8202 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriterTest.java
@@ -215,8 +215,8 @@ public class RestorableTsFileIOWriterTest {
TsFileReader tsFileReader = new TsFileReader(new TsFileSequenceReader(file.getPath()));
List<Path> pathList = new ArrayList<>();
- pathList.add(new Path("d1", "s1"));
- pathList.add(new Path("d1", "s2"));
+ pathList.add(new Path("d1", "s1", true));
+ pathList.add(new Path("d1", "s2", true));
QueryExpression queryExpression = QueryExpression.create(pathList, null);
QueryDataSet dataSet = tsFileReader.query(queryExpression);
RowRecord record = dataSet.next();
@@ -256,9 +256,9 @@ public class RestorableTsFileIOWriterTest {
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
- List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1"));
+ List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
}
@@ -300,13 +300,13 @@ public class RestorableTsFileIOWriterTest {
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
- List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1"));
+ List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
}
@@ -348,13 +348,13 @@ public class RestorableTsFileIOWriterTest {
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
- List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1"));
+ List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
}
@@ -397,13 +397,13 @@ public class RestorableTsFileIOWriterTest {
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
- List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1"));
+ List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d2", "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
}
@@ -434,9 +434,9 @@ public class RestorableTsFileIOWriterTest {
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
- List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1"));
+ List<ChunkMetadata> chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s1", true));
assertNotNull(chunkMetadataList);
- chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2"));
+ chunkMetadataList = reader.getChunkMetadataList(new Path("d1", "s2", true));
assertNotNull(chunkMetadataList);
reader.close();
}