You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2021/06/29 07:53:27 UTC
[iotdb] 01/01: seperate getAllTimeSeries from show timeseries
This is an automated email from the ASF dual-hosted git repository.
xiangweiwei pushed a commit to branch optPhysical
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9f219c4f0f6552184a21cdc3e5152108140dd329
Author: Alima777 <wx...@gmail.com>
AuthorDate: Tue Jun 29 15:52:48 2021 +0800
seperate getAllTimeSeries from show timeseries
---
.../apache/iotdb/cluster/metadata/CMManager.java | 2 +-
.../iotdb/AlignedTimeseriesSessionExample.java | 4 +-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 16 +-
.../db/engine/memtable/PrimitiveMemTable.java | 2 +-
.../db/engine/querycontext/ReadOnlyMemChunk.java | 18 +-
.../engine/storagegroup/StorageGroupProcessor.java | 2 +-
.../db/engine/storagegroup/TsFileProcessor.java | 20 +-
.../org/apache/iotdb/db/metadata/MManager.java | 43 +--
.../java/org/apache/iotdb/db/metadata/MTree.java | 352 +++++++++++++--------
.../iotdb/db/metadata/VectorPartialPath.java | 1 -
.../iotdb/db/metadata/mnode/MeasurementMNode.java | 4 +-
.../iotdb/db/metadata/template/Template.java | 2 +-
.../iotdb/db/qp/logical/crud/QueryOperator.java | 2 +-
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 2 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 2 +-
.../java/org/apache/iotdb/db/utils/MemUtils.java | 2 +-
.../iotdb/db/writelog/recover/LogReplayer.java | 4 +-
.../iotdb/db/integration/IoTDBQueryTimeoutIT.java | 7 +-
.../java/org/apache/iotdb/session/Session.java | 10 +-
.../org/apache/iotdb/session/SessionUtils.java | 4 +-
.../apache/iotdb/session/IoTDBSessionSimpleIT.java | 6 +-
.../tsfile/write/chunk/VectorChunkWriterImpl.java | 8 +-
.../apache/iotdb/tsfile/write/record/Tablet.java | 16 +-
.../tsfile/write/schema/IMeasurementSchema.java | 10 +-
.../tsfile/write/schema/MeasurementSchema.java | 10 +-
.../write/schema/VectorMeasurementSchema.java | 64 ++--
.../write/writer/VectorMeasurementSchemaStub.java | 10 +-
27 files changed, 356 insertions(+), 267 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
index 170ef49..20a3225 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
@@ -226,7 +226,7 @@ public class CMManager extends MManager {
new MeasurementMNode(
null, measurementSchema.getMeasurementId(), measurementSchema, null);
if (measurementSchema instanceof VectorMeasurementSchema) {
- for (String subSensorId : measurementSchema.getValueMeasurementIdList()) {
+ for (String subSensorId : measurementSchema.getSubMeasurementsList()) {
cacheMeta(new PartialPath(path.getDevice(), subSensorId), measurementMNode, false);
}
cacheMeta(
diff --git a/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java b/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
index 2bbde9a..bf43a61 100644
--- a/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
@@ -255,11 +255,11 @@ public class AlignedTimeseriesSessionExample {
int rowIndex = tablet.rowSize++;
tablet.addTimestamp(rowIndex, timestamp);
tablet.addValue(
- schemaList.get(0).getValueMeasurementIdList().get(0),
+ schemaList.get(0).getSubMeasurementsList().get(0),
rowIndex,
new SecureRandom().nextLong());
tablet.addValue(
- schemaList.get(0).getValueMeasurementIdList().get(1),
+ schemaList.get(0).getSubMeasurementsList().get(1),
rowIndex,
new SecureRandom().nextInt());
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index 170f49c..f12f73a 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -129,14 +129,14 @@ public abstract class AbstractMemTable implements IMemTable {
if (measurementMNode != null) {
// write vector
Object[] vectorValue =
- new Object[measurementMNode.getSchema().getValueTSDataTypeList().size()];
+ new Object[measurementMNode.getSchema().getSubMeasurementsTSDataTypeList().size()];
for (int j = 0; j < vectorValue.length; j++) {
vectorValue[j] = values[columnIndex];
columnIndex++;
}
memSize +=
MemUtils.getVectorRecordSize(
- measurementMNode.getSchema().getValueTSDataTypeList(),
+ measurementMNode.getSchema().getSubMeasurementsTSDataTypeList(),
vectorValue,
disableMemControl);
write(
@@ -207,9 +207,9 @@ public abstract class AbstractMemTable implements IMemTable {
if (insertTabletPlan.isAligned()) {
VectorMeasurementSchema vectorSchema =
(VectorMeasurementSchema) insertTabletPlan.getMeasurementMNodes()[i].getSchema();
- Object[] columns = new Object[vectorSchema.getValueMeasurementIdList().size()];
- BitMap[] bitMaps = new BitMap[vectorSchema.getValueMeasurementIdList().size()];
- for (int j = 0; j < vectorSchema.getValueMeasurementIdList().size(); j++) {
+ Object[] columns = new Object[vectorSchema.getSubMeasurementsList().size()];
+ BitMap[] bitMaps = new BitMap[vectorSchema.getSubMeasurementsList().size()];
+ for (int j = 0; j < vectorSchema.getSubMeasurementsList().size(); j++) {
columns[j] = insertTabletPlan.getColumns()[columnIndex];
if (insertTabletPlan.getBitMaps() != null) {
bitMaps[j] = insertTabletPlan.getBitMaps()[columnIndex];
@@ -319,11 +319,11 @@ public abstract class AbstractMemTable implements IMemTable {
return null;
}
- List<String> measurementIdList = partialVectorSchema.getValueMeasurementIdList();
+ List<String> measurementIdList = partialVectorSchema.getSubMeasurementsList();
List<Integer> columns = new ArrayList<>();
IMeasurementSchema vectorSchema = vectorMemChunk.getSchema();
for (String queryingMeasurement : measurementIdList) {
- columns.add(vectorSchema.getValueMeasurementIdList().indexOf(queryingMeasurement));
+ columns.add(vectorSchema.getSubMeasurementsList().indexOf(queryingMeasurement));
}
// get sorted tv list is synchronized so different query can get right sorted list reference
TVList vectorTvListCopy = vectorMemChunk.getSortedTvListForQuery(columns);
@@ -374,7 +374,7 @@ public abstract class AbstractMemTable implements IMemTable {
// for vector type
else if (schema.getType() == TSDataType.VECTOR) {
List<String> measurements = MetaUtils.getMeasurementsInPartialPath(originalPath);
- if (measurements.containsAll(schema.getValueMeasurementIdList())) {
+ if (measurements.containsAll(schema.getSubMeasurementsList())) {
if (startTimestamp == Long.MIN_VALUE && endTimestamp == Long.MAX_VALUE) {
iter.remove();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
index e13bbf2..dc809e3 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
@@ -42,7 +42,7 @@ public class PrimitiveMemTable extends AbstractMemTable {
protected IWritableMemChunk genMemSeries(IMeasurementSchema schema) {
if (schema.getType() == TSDataType.VECTOR) {
return new WritableMemChunk(
- schema, TVListAllocator.getInstance().allocate(schema.getValueTSDataTypeList()));
+ schema, TVListAllocator.getInstance().allocate(schema.getSubMeasurementsTSDataTypeList()));
}
return new WritableMemChunk(schema, TVListAllocator.getInstance().allocate(schema.getType()));
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
index e7e83db..ebdf793 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
@@ -173,13 +173,13 @@ public class ReadOnlyMemChunk {
IChunkMetadata timeChunkMetadata =
new ChunkMetadata(measurementUid, TSDataType.VECTOR, 0, timeStatistics);
List<IChunkMetadata> valueChunkMetadataList = new ArrayList<>();
- Statistics[] valueStatistics = new Statistics[schema.getValueTSDataTypeList().size()];
- for (int i = 0; i < schema.getValueTSDataTypeList().size(); i++) {
- valueStatistics[i] = Statistics.getStatsByType(schema.getValueTSDataTypeList().get(i));
+ Statistics[] valueStatistics = new Statistics[schema.getSubMeasurementsTSDataTypeList().size()];
+ for (int i = 0; i < schema.getSubMeasurementsTSDataTypeList().size(); i++) {
+ valueStatistics[i] = Statistics.getStatsByType(schema.getSubMeasurementsTSDataTypeList().get(i));
IChunkMetadata valueChunkMetadata =
new ChunkMetadata(
- schema.getValueMeasurementIdList().get(i),
- schema.getValueTSDataTypeList().get(i),
+ schema.getSubMeasurementsList().get(i),
+ schema.getSubMeasurementsTSDataTypeList().get(i),
0,
valueStatistics[i]);
valueChunkMetadataList.add(valueChunkMetadata);
@@ -190,7 +190,7 @@ public class ReadOnlyMemChunk {
while (iterator.hasNextTimeValuePair()) {
TimeValuePair timeValuePair = iterator.nextTimeValuePair();
timeStatistics.update(timeValuePair.getTimestamp());
- if (schema.getValueTSDataTypeList().size() == 1) {
+ if (schema.getSubMeasurementsTSDataTypeList().size() == 1) {
updateValueStatisticsForSingleColumn(schema, valueStatistics, timeValuePair);
} else {
updateValueStatistics(schema, valueStatistics, timeValuePair);
@@ -212,7 +212,7 @@ public class ReadOnlyMemChunk {
private void updateValueStatisticsForSingleColumn(
IMeasurementSchema schema, Statistics[] valueStatistics, TimeValuePair timeValuePair)
throws QueryProcessException {
- switch (schema.getValueTSDataTypeList().get(0)) {
+ switch (schema.getSubMeasurementsTSDataTypeList().get(0)) {
case BOOLEAN:
valueStatistics[0].update(
timeValuePair.getTimestamp(), timeValuePair.getValue().getBoolean());
@@ -243,11 +243,11 @@ public class ReadOnlyMemChunk {
private void updateValueStatistics(
IMeasurementSchema schema, Statistics[] valueStatistics, TimeValuePair timeValuePair)
throws QueryProcessException {
- for (int i = 0; i < schema.getValueTSDataTypeList().size(); i++) {
+ for (int i = 0; i < schema.getSubMeasurementsTSDataTypeList().size(); i++) {
if (timeValuePair.getValue().getVector()[i] == null) {
continue;
}
- switch (schema.getValueTSDataTypeList().get(i)) {
+ switch (schema.getSubMeasurementsTSDataTypeList().get(i)) {
case BOOLEAN:
valueStatistics[i].update(
timeValuePair.getTimestamp(), timeValuePair.getValue().getVector()[i].getBoolean());
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 2b2185d..d86b74b 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1060,7 +1060,7 @@ public class StorageGroupProcessor {
for (int i = 0; i < mNodes.length; i++) {
// Don't update cached last value for vector type
if (mNodes[i] != null && plan.isAligned()) {
- columnIndex += mNodes[i].getSchema().getValueMeasurementIdList().size();
+ columnIndex += mNodes[i].getSchema().getSubMeasurementsList().size();
} else {
if (plan.getColumns()[i] == null) {
columnIndex++;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
index 28f0f6e..9d401b5 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
@@ -321,11 +321,11 @@ public class TsFileProcessor {
IMeasurementSchema schema = insertRowPlan.getMeasurementMNodes()[i].getSchema();
if (schema.getType() == TSDataType.VECTOR) {
chunkMetadataIncrement +=
- schema.getValueTSDataTypeList().size()
+ schema.getSubMeasurementsTSDataTypeList().size()
* ChunkMetadata.calculateRamSize(
- schema.getValueMeasurementIdList().get(0),
- schema.getValueTSDataTypeList().get(0));
- memTableIncrement += TVList.vectorTvListArrayMemSize(schema.getValueTSDataTypeList());
+ schema.getSubMeasurementsList().get(0),
+ schema.getSubMeasurementsTSDataTypeList().get(0));
+ memTableIncrement += TVList.vectorTvListArrayMemSize(schema.getSubMeasurementsTSDataTypeList());
} else {
chunkMetadataIncrement +=
ChunkMetadata.calculateRamSize(
@@ -365,8 +365,8 @@ public class TsFileProcessor {
if (insertTabletPlan.isAligned()) {
VectorMeasurementSchema vectorSchema =
(VectorMeasurementSchema) insertTabletPlan.getMeasurementMNodes()[i].getSchema();
- Object[] columns = new Object[vectorSchema.getValueMeasurementIdList().size()];
- for (int j = 0; j < vectorSchema.getValueMeasurementIdList().size(); j++) {
+ Object[] columns = new Object[vectorSchema.getSubMeasurementsList().size()];
+ for (int j = 0; j < vectorSchema.getSubMeasurementsList().size(); j++) {
columns[j] = insertTabletPlan.getColumns()[columnIndex++];
}
updateVectorMemCost(vectorSchema, deviceId, start, end, memIncrements, columns);
@@ -437,8 +437,8 @@ public class TsFileProcessor {
Object[] columns) {
// memIncrements = [memTable, text, chunk metadata] respectively
- List<String> measurementIds = vectorSchema.getValueMeasurementIdList();
- List<TSDataType> dataTypes = vectorSchema.getValueTSDataTypeList();
+ List<String> measurementIds = vectorSchema.getSubMeasurementsList();
+ List<TSDataType> dataTypes = vectorSchema.getSubMeasurementsTSDataTypeList();
if (workMemTable.checkIfChunkDoesNotExist(deviceId, vectorSchema.getMeasurementId())) {
// ChunkMetadataIncrement
memIncrements[2] +=
@@ -1220,8 +1220,8 @@ public class TsFileProcessor {
List<ChunkMetadata> timeChunkMetadataList =
writer.getVisibleMetadataList(deviceId, measurementId, schema.getType());
List<List<ChunkMetadata>> valueChunkMetadataList = new ArrayList<>();
- List<String> valueMeasurementIdList = schema.getValueMeasurementIdList();
- List<TSDataType> valueDataTypeList = schema.getValueTSDataTypeList();
+ List<String> valueMeasurementIdList = schema.getSubMeasurementsList();
+ List<TSDataType> valueDataTypeList = schema.getSubMeasurementsTSDataTypeList();
for (int i = 0; i < valueMeasurementIdList.size(); i++) {
valueChunkMetadataList.add(
writer.getVisibleMetadataList(
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 3859995..8daaafb 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -593,7 +593,7 @@ public class MManager {
if (lastNode instanceof MeasurementMNode) {
IMeasurementSchema schema = ((MeasurementMNode) lastNode).getSchema();
if (schema instanceof VectorMeasurementSchema) {
- if (schema.getValueMeasurementIdList().size() != allTimeseries.size()) {
+ if (schema.getSubMeasurementsList().size() != allTimeseries.size()) {
throw new AlignedTimeseriesException(
"Not support deleting part of aligned timeseies!", prefixPath.getFullPath());
} else {
@@ -692,7 +692,7 @@ public class MManager {
updateSchemaDataTypeNumMap(schema.getType(), -1);
timeseriesNum = 1;
} else if (schema instanceof VectorMeasurementSchema) {
- for (TSDataType dataType : schema.getValueTSDataTypeList()) {
+ for (TSDataType dataType : schema.getSubMeasurementsTSDataTypeList()) {
updateSchemaDataTypeNumMap(dataType, -1);
timeseriesNum++;
}
@@ -833,8 +833,10 @@ public class MManager {
if (schema instanceof MeasurementSchema) {
return schema.getType();
} else {
- List<String> measurements = schema.getValueMeasurementIdList();
- return schema.getValueTSDataTypeList().get(measurements.indexOf(path.getMeasurement()));
+ List<String> measurements = schema.getSubMeasurementsList();
+ return schema
+ .getSubMeasurementsTSDataTypeList()
+ .get(measurements.indexOf(path.getMeasurement()));
}
}
@@ -933,7 +935,7 @@ public class MManager {
return mtree.getAllTimeseriesPath(prefixPath);
}
- /** Similar to method getAllTimeseriesPath(), but return Path with alias alias. */
+ /** Similar to method getAllTimeseriesPath(), but return Path with alias. */
public Pair<List<PartialPath>, Integer> getAllTimeseriesPathWithAlias(
PartialPath prefixPath, int limit, int offset) throws MetadataException {
return mtree.getAllTimeseriesPathWithAlias(prefixPath, limit, offset);
@@ -1100,15 +1102,15 @@ public class MManager {
*/
private List<ShowTimeSeriesResult> showTimeseriesWithoutIndex(
ShowTimeSeriesPlan plan, QueryContext context) throws MetadataException {
- List<Pair<PartialPath, String[]>> ans;
+ List<String[]> ans;
if (plan.isOrderByHeat()) {
ans = mtree.getAllMeasurementSchemaByHeatOrder(plan, context);
} else {
ans = mtree.getAllMeasurementSchema(plan);
}
List<ShowTimeSeriesResult> res = new LinkedList<>();
- for (Pair<PartialPath, String[]> ansString : ans) {
- long tagFileOffset = Long.parseLong(ansString.right[5]);
+ for (String[] ansString : ans) {
+ long tagFileOffset = Long.parseLong(ansString[6]);
try {
Pair<Map<String, String>, Map<String, String>> tagAndAttributePair =
new Pair<>(Collections.emptyMap(), Collections.emptyMap());
@@ -1117,18 +1119,17 @@ public class MManager {
}
res.add(
new ShowTimeSeriesResult(
- ansString.left.getFullPath(),
- ansString.right[0],
- ansString.right[1],
- TSDataType.valueOf(ansString.right[2]),
- TSEncoding.valueOf(ansString.right[3]),
- CompressionType.valueOf(ansString.right[4]),
+ ansString[0],
+ ansString[1],
+ ansString[2],
+ TSDataType.valueOf(ansString[3]),
+ TSEncoding.valueOf(ansString[4]),
+ CompressionType.valueOf(ansString[5]),
tagAndAttributePair.left,
tagAndAttributePair.right));
} catch (IOException e) {
throw new MetadataException(
- "Something went wrong while deserialize tag info of " + ansString.left.getFullPath(),
- e);
+ "Something went wrong while deserialize tag info of " + ansString[0], e);
}
}
return res;
@@ -1165,15 +1166,15 @@ public class MManager {
if (schema == null || schema.getType() != TSDataType.VECTOR) {
return schema;
}
- List<String> measurementsInLeaf = schema.getValueMeasurementIdList();
+ List<String> measurementsInLeaf = schema.getSubMeasurementsList();
List<PartialPath> measurements = ((VectorPartialPath) fullPath).getSubSensorsPathList();
TSDataType[] types = new TSDataType[measurements.size()];
TSEncoding[] encodings = new TSEncoding[measurements.size()];
for (int i = 0; i < measurements.size(); i++) {
int index = measurementsInLeaf.indexOf(measurements.get(i).getMeasurement());
- types[i] = schema.getValueTSDataTypeList().get(index);
- encodings[i] = schema.getValueTSEncodingList().get(index);
+ types[i] = schema.getSubMeasurementsTSDataTypeList().get(index);
+ encodings[i] = schema.getSubMeasurementsTSEncodingList().get(index);
}
String[] array = new String[measurements.size()];
for (int i = 0; i < array.length; i++) {
@@ -2221,7 +2222,7 @@ public class MManager {
if (plan instanceof InsertRowPlan || plan instanceof InsertTabletPlan) {
if (plan.isAligned()) {
TSDataType dataTypeInNode =
- measurementMNode.getSchema().getValueTSDataTypeList().get(i);
+ measurementMNode.getSchema().getSubMeasurementsTSDataTypeList().get(i);
insertDataType = plan.getDataTypes()[i];
if (insertDataType == null) {
insertDataType = dataTypeInNode;
@@ -2229,7 +2230,7 @@ public class MManager {
if (dataTypeInNode != insertDataType) {
logger.warn(
"DataType mismatch, Insert measurement {} in {} type {}, metadata tree type {}",
- measurementMNode.getSchema().getValueMeasurementIdList().get(i),
+ measurementMNode.getSchema().getSubMeasurementsList().get(i),
measurementList[i],
insertDataType,
dataTypeInNode);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index efb6d2e..89efb62 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -947,13 +947,9 @@ public class MTree implements Serializable {
* @param prefixPath a prefix path or a full path, may contain '*'.
*/
List<PartialPath> getAllTimeseriesPath(PartialPath prefixPath) throws MetadataException {
- ShowTimeSeriesPlan plan = new ShowTimeSeriesPlan(prefixPath);
- List<Pair<PartialPath, String[]>> res = getAllMeasurementSchema(plan);
- List<PartialPath> paths = new ArrayList<>();
- for (Pair<PartialPath, String[]> p : res) {
- paths.add(p.left);
- }
- return paths;
+ List<PartialPath> resultPathList = new ArrayList<>();
+ findPath(root, prefixPath.getNodes(), 1, resultPathList, null);
+ return resultPathList;
}
/**
@@ -969,13 +965,14 @@ public class MTree implements Serializable {
ShowTimeSeriesPlan plan = new ShowTimeSeriesPlan(prefixPath);
plan.setLimit(limit);
plan.setOffset(offset);
- List<Pair<PartialPath, String[]>> res = getAllMeasurementSchema(plan, false);
+ List<String[]> res = getAllMeasurementSchema(plan, false);
List<PartialPath> paths = new ArrayList<>();
- for (Pair<PartialPath, String[]> p : res) {
- if (prePath.getMeasurement().equals(p.right[0])) {
- p.left.setMeasurementAlias(p.right[0]);
+ for (String[] s : res) {
+ PartialPath path = new PartialPath(s[0]);
+ if (prePath.getMeasurement().equals(s[1])) {
+ path.setMeasurementAlias(s[1]);
}
- paths.add(p.left);
+ paths.add(path);
}
if (curOffset.get() == null) {
offset = 0;
@@ -1150,23 +1147,22 @@ public class MTree implements Serializable {
*
* <p>result: [name, alias, storage group, dataType, encoding, compression, offset]
*/
- List<Pair<PartialPath, String[]>> getAllMeasurementSchemaByHeatOrder(
+ List<String[]> getAllMeasurementSchemaByHeatOrder(
ShowTimeSeriesPlan plan, QueryContext queryContext) throws MetadataException {
String[] nodes = plan.getPath().getNodes();
if (nodes.length == 0 || !nodes[0].equals(root.getName())) {
throw new IllegalPathException(plan.getPath().getFullPath());
}
- List<Pair<PartialPath, String[]>> allMatchedNodes = new ArrayList<>();
+ List<String[]> allMatchedNodes = new ArrayList<>();
findPath(root, nodes, 1, allMatchedNodes, false, true, queryContext, null);
- Stream<Pair<PartialPath, String[]>> sortedStream =
+ Stream<String[]> sortedStream =
allMatchedNodes.stream()
.sorted(
- Comparator.comparingLong(
- (Pair<PartialPath, String[]> p) -> Long.parseLong(p.right[6]))
+ Comparator.comparingLong((String[] s) -> Long.parseLong(s[7]))
.reversed()
- .thenComparing((Pair<PartialPath, String[]> p) -> p.left));
+ .thenComparing((String[] s) -> s[0]));
// no limit
if (plan.getLimit() == 0) {
@@ -1181,14 +1177,13 @@ public class MTree implements Serializable {
*
* <p>result: [name, alias, storage group, dataType, encoding, compression, offset]
*/
- List<Pair<PartialPath, String[]>> getAllMeasurementSchema(ShowTimeSeriesPlan plan)
- throws MetadataException {
+ List<String[]> getAllMeasurementSchema(ShowTimeSeriesPlan plan) throws MetadataException {
return getAllMeasurementSchema(plan, true);
}
- List<Pair<PartialPath, String[]>> getAllMeasurementSchema(
- ShowTimeSeriesPlan plan, boolean removeCurrentOffset) throws MetadataException {
- List<Pair<PartialPath, String[]>> res = new LinkedList<>();
+ List<String[]> getAllMeasurementSchema(ShowTimeSeriesPlan plan, boolean removeCurrentOffset)
+ throws MetadataException {
+ List<String[]> res = new LinkedList<>();
String[] nodes = plan.getPath().getNodes();
if (nodes.length == 0 || !nodes[0].equals(root.getName())) {
throw new IllegalPathException(plan.getPath().getFullPath());
@@ -1209,63 +1204,64 @@ public class MTree implements Serializable {
}
/**
- * Iterate through MTree to fetch metadata info of all leaf nodes under the given seriesPath
+ * For show timeseries.
+ *
+ * <p>Iterate through MTree to fetch metadata info of all leaf nodes under the given seriesPath
*
* @param needLast if false, lastTimeStamp in timeseriesSchemaList will be null
- * @param timeseriesSchemaList List<timeseriesSchema> result: [name, alias, storage group,
- * dataType, encoding, compression, offset, lastTimeStamp]
+ * @param timeseriesSchemaList List<String[]> result: [name, alias, storage group, dataType,
+ * encoding, compression, offset, lastTimeStamp]
*/
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private void findPath(
- MNode node,
+ MNode curNode,
String[] nodes,
- int idx,
- List<Pair<PartialPath, String[]>> timeseriesSchemaList,
+ int childIndex,
+ List<String[]> timeseriesSchemaList,
boolean hasLimit,
boolean needLast,
QueryContext queryContext,
Template upperTemplate)
throws MetadataException {
- if (node instanceof MeasurementMNode
- && (nodes.length <= idx
- || ((MeasurementMNode) node).getSchema() instanceof VectorMeasurementSchema)) {
+ if (curNode instanceof MeasurementMNode
+ // For example: nodes: [root, sg, d1, s1, ss1], mTree: root.sg.d1.s1
+ // node: root.sg.d1.s1, childIndex = 4 < length, will not be chosen
+ && (nodes.length <= childIndex
+ || ((MeasurementMNode) curNode).getSchema() instanceof VectorMeasurementSchema)) {
if (hasLimit) {
curOffset.set(curOffset.get() + 1);
if (curOffset.get() < offset.get() || count.get().intValue() == limit.get().intValue()) {
return;
}
}
- IMeasurementSchema measurementSchema = ((MeasurementMNode) node).getSchema();
+ MeasurementMNode measurementMNode = (MeasurementMNode) curNode;
+ IMeasurementSchema measurementSchema = measurementMNode.getSchema();
+
if (measurementSchema instanceof MeasurementSchema) {
- addMeasurementSchema(
- node, timeseriesSchemaList, needLast, queryContext, measurementSchema, "*");
+ timeseriesSchemaList.add(getTimeseriesInfo(measurementMNode, needLast, queryContext));
} else if (measurementSchema instanceof VectorMeasurementSchema) {
- addVectorMeasurementSchema(
- node,
- timeseriesSchemaList,
- needLast,
- queryContext,
- measurementSchema,
- idx < nodes.length ? nodes[idx] : "*");
+ String nextNode = MetaUtils.getNodeRegByIdx(childIndex, nodes);
+ timeseriesSchemaList.addAll(
+ getVectorTimeseriesInfo(measurementMNode, needLast, queryContext, nextNode));
}
if (hasLimit) {
count.set(count.get() + 1);
}
}
- String nodeReg = MetaUtils.getNodeRegByIdx(idx, nodes);
- if (node.getDeviceTemplate() != null) {
- upperTemplate = node.getDeviceTemplate();
+ String nodeReg = MetaUtils.getNodeRegByIdx(childIndex, nodes);
+ if (curNode.getDeviceTemplate() != null) {
+ upperTemplate = curNode.getDeviceTemplate();
}
- // we should use template when all child is measurement or this node has no child
+ // we should use template when all children are measurements or this node has no child
if (!nodeReg.contains(PATH_WILDCARD)) {
- MNode next = node.getChild(nodeReg);
+ MNode next = curNode.getChild(nodeReg);
if (next != null) {
findPath(
next,
nodes,
- idx + 1,
+ childIndex + 1,
timeseriesSchemaList,
hasLimit,
needLast,
@@ -1273,14 +1269,14 @@ public class MTree implements Serializable {
upperTemplate);
}
} else {
- for (MNode child : node.getChildren().values()) {
+ for (MNode child : curNode.getChildren().values()) {
if (!Pattern.matches(nodeReg.replace("*", ".*"), child.getName())) {
continue;
}
findPath(
child,
nodes,
- idx + 1,
+ childIndex + 1,
timeseriesSchemaList,
hasLimit,
needLast,
@@ -1293,32 +1289,32 @@ public class MTree implements Serializable {
}
// template part
- if (!(node instanceof MeasurementMNode) && node.isUseTemplate()) {
+ if (!(curNode instanceof MeasurementMNode) && curNode.isUseTemplate()) {
if (upperTemplate != null) {
HashSet<IMeasurementSchema> set = new HashSet<>();
for (IMeasurementSchema schema : upperTemplate.getSchemaMap().values()) {
if (set.add(schema)) {
if (schema instanceof MeasurementSchema) {
- addMeasurementSchema(
- new MeasurementMNode(node, schema.getMeasurementId(), schema, null),
- timeseriesSchemaList,
- needLast,
- queryContext,
- schema,
- nodeReg);
+ if (Pattern.matches(nodeReg.replace("*", ".*"), schema.getMeasurementId())) {
+ timeseriesSchemaList.add(
+ getTimeseriesInfo(
+ new MeasurementMNode(curNode, schema.getMeasurementId(), schema, null),
+ needLast,
+ queryContext));
+ }
} else if (schema instanceof VectorMeasurementSchema) {
VectorMeasurementSchema vectorMeasurementSchema = (VectorMeasurementSchema) schema;
if (Pattern.matches(
nodeReg.replace("*", ".*"), vectorMeasurementSchema.getMeasurementId())) {
- String firstNode = schema.getValueMeasurementIdList().get(0);
- addVectorMeasurementSchemaForTemplate(
- new MeasurementMNode(node, firstNode, schema, null),
- timeseriesSchemaList,
- needLast,
- queryContext,
- schema,
- MetaUtils.getNodeRegByIdx(idx + 1, nodes),
- vectorMeasurementSchema.getMeasurementId());
+ String firstNode = vectorMeasurementSchema.getSubMeasurementsList().get(0);
+ timeseriesSchemaList.addAll(
+ getVectorTimeseriesInfoForTemplate(
+ new MeasurementMNode(curNode, firstNode, schema, null),
+ needLast,
+ queryContext,
+ vectorMeasurementSchema,
+ MetaUtils.getNodeRegByIdx(childIndex + 1, nodes),
+ vectorMeasurementSchema.getMeasurementId()));
}
}
}
@@ -1327,88 +1323,186 @@ public class MTree implements Serializable {
}
}
- private void addMeasurementSchema(
- MNode node,
- List<Pair<PartialPath, String[]>> timeseriesSchemaList,
- boolean needLast,
- QueryContext queryContext,
- IMeasurementSchema measurementSchema,
- String reg)
- throws StorageGroupNotSetException {
- if (Pattern.matches(reg.replace("*", ".*"), measurementSchema.getMeasurementId())) {
- PartialPath nodePath = node.getPartialPath();
- String[] tsRow = new String[7];
- tsRow[0] = ((MeasurementMNode) node).getAlias();
- tsRow[1] = getStorageGroupPath(nodePath).getFullPath();
- tsRow[2] = measurementSchema.getType().toString();
- tsRow[3] = measurementSchema.getEncodingType().toString();
- tsRow[4] = measurementSchema.getCompressor().toString();
- tsRow[5] = String.valueOf(((MeasurementMNode) node).getOffset());
- tsRow[6] =
- needLast ? String.valueOf(getLastTimeStamp((MeasurementMNode) node, queryContext)) : null;
- Pair<PartialPath, String[]> temp = new Pair<>(nodePath, tsRow);
- timeseriesSchemaList.add(temp);
+ /**
+ * For query
+ *
+ * <p>Iterate through MTree to fetch metadata info of all leaf nodes under the given seriesPath
+ */
+ @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
+ private void findPath(
+ MNode curNode,
+ String[] nodes,
+ int childIndex,
+ List<PartialPath> pathList,
+ Template upperTemplate)
+ throws MetadataException {
+ if (curNode instanceof MeasurementMNode
+ // For example: nodes: [root, sg, d1, s1, ss1], mtree: root.sg.d1.s1
+ // node: root.sg.d1.s1, idx = 4 < length, will not be chosen
+ && (nodes.length <= childIndex
+ || ((MeasurementMNode) curNode).getSchema() instanceof VectorMeasurementSchema)) {
+ MeasurementMNode measurementMNode = (MeasurementMNode) curNode;
+ IMeasurementSchema measurementSchema = ((MeasurementMNode) curNode).getSchema();
+ if (measurementSchema instanceof MeasurementSchema) {
+ pathList.add(curNode.getPartialPath());
+ } else if (measurementSchema instanceof VectorMeasurementSchema) {
+ String nextNode = MetaUtils.getNodeRegByIdx(childIndex, nodes);
+ pathList.addAll(getVectorMeasurementPaths(measurementMNode, nextNode));
+ }
+ }
+
+ String nodeReg = MetaUtils.getNodeRegByIdx(childIndex, nodes);
+ if (curNode.getDeviceTemplate() != null) {
+ upperTemplate = curNode.getDeviceTemplate();
+ }
+
+ // we should use template when all children are measurements or this node has no child
+ if (!nodeReg.contains(PATH_WILDCARD)) {
+ MNode next = curNode.getChild(nodeReg);
+ if (next != null) {
+ findPath(next, nodes, childIndex + 1, pathList, upperTemplate);
+ }
+ } else {
+ for (MNode child : curNode.getChildren().values()) {
+ if (!Pattern.matches(nodeReg.replace("*", ".*"), child.getName())) {
+ continue;
+ }
+ findPath(child, nodes, childIndex + 1, pathList, upperTemplate);
+ }
+ }
+
+ // template part
+ if (!(curNode instanceof MeasurementMNode) && curNode.isUseTemplate()) {
+ if (upperTemplate != null) {
+ HashSet<IMeasurementSchema> set = new HashSet<>();
+ for (IMeasurementSchema schema : upperTemplate.getSchemaMap().values()) {
+ if (set.add(schema)) {
+ if (schema instanceof MeasurementSchema) {
+ MNode mNode = new MeasurementMNode(curNode, schema.getMeasurementId(), schema, null);
+ pathList.add(mNode.getPartialPath());
+ } else if (schema instanceof VectorMeasurementSchema) {
+ VectorMeasurementSchema vectorMeasurementSchema = (VectorMeasurementSchema) schema;
+ if (Pattern.matches(
+ nodeReg.replace("*", ".*"), vectorMeasurementSchema.getMeasurementId())) {
+ String firstNode = schema.getSubMeasurementsList().get(0);
+ pathList.addAll(
+ getVectorMeasurementPathsForTemplate(
+ new MeasurementMNode(curNode, firstNode, schema, null),
+ schema,
+ MetaUtils.getNodeRegByIdx(childIndex + 1, nodes),
+ vectorMeasurementSchema.getMeasurementId()));
+ }
+ }
+ }
+ }
+ }
}
}
- private void addVectorMeasurementSchema(
- MNode node,
- List<Pair<PartialPath, String[]>> timeseriesSchemaList,
- boolean needLast,
- QueryContext queryContext,
- IMeasurementSchema schema,
- String reg)
- throws StorageGroupNotSetException, IllegalPathException {
- List<String> measurements = schema.getValueMeasurementIdList();
- for (int i = 0; i < measurements.size(); i++) {
- if (!Pattern.matches(reg.replace("*", ".*"), measurements.get(i))) {
+ /**
+ * For show time series. [name, alias, storage group, dataType, encoding, compression, offset,
+ * lastTimeStamp]
+ */
+ private String[] getTimeseriesInfo(
+ MeasurementMNode node, boolean needLast, QueryContext queryContext)
+ throws StorageGroupNotSetException {
+ MeasurementSchema measurementSchema = (MeasurementSchema) node.getSchema();
+ String[] tsRow = new String[8];
+ tsRow[0] = node.getFullPath();
+ tsRow[1] = node.getAlias();
+ tsRow[2] = getStorageGroupPath(node.getPartialPath()).getFullPath();
+ tsRow[3] = measurementSchema.getType().toString();
+ tsRow[4] = measurementSchema.getEncodingType().toString();
+ tsRow[5] = measurementSchema.getCompressor().toString();
+ tsRow[6] = String.valueOf(node.getOffset());
+ tsRow[7] = needLast ? String.valueOf(getLastTimeStamp(node, queryContext)) : null;
+ return tsRow;
+ }
+
+ private List<String[]> getVectorTimeseriesInfo(
+ MeasurementMNode node, boolean needLast, QueryContext queryContext, String nextNode)
+ throws StorageGroupNotSetException {
+ List<String[]> tsRows = new ArrayList<>();
+ VectorMeasurementSchema schema = (VectorMeasurementSchema) node.getSchema();
+ List<String> subMeasurements = schema.getSubMeasurementsList();
+ for (int i = 0; i < subMeasurements.size(); i++) {
+ if (!Pattern.matches(nextNode.replace("*", ".*"), subMeasurements.get(i))) {
continue;
}
PartialPath devicePath = node.getPartialPath();
- String[] tsRow = new String[7];
- tsRow[0] = null;
- tsRow[1] = getStorageGroupPath(devicePath).getFullPath();
- tsRow[2] = schema.getValueTSDataTypeList().get(i).toString();
- tsRow[3] = schema.getValueTSEncodingList().get(i).toString();
- tsRow[4] = schema.getCompressor().toString();
- tsRow[5] = "-1";
- tsRow[6] =
- needLast ? String.valueOf(getLastTimeStamp((MeasurementMNode) node, queryContext)) : null;
- Pair<PartialPath, String[]> temp =
- new Pair<>(new PartialPath(devicePath.getFullPath(), measurements.get(i)), tsRow);
- timeseriesSchemaList.add(temp);
+ String[] tsRow = new String[8];
+ tsRow[0] = devicePath.getFullPath() + "." + subMeasurements.get(i);
+ tsRow[1] = null;
+ tsRow[2] = getStorageGroupPath(devicePath).getFullPath();
+ tsRow[3] = schema.getSubMeasurementsTSDataTypeList().get(i).toString();
+ tsRow[4] = schema.getSubMeasurementsTSEncodingList().get(i).toString();
+ tsRow[5] = schema.getCompressor().toString();
+ tsRow[6] = "-1";
+ tsRow[7] = needLast ? String.valueOf(getLastTimeStamp(node, queryContext)) : null;
+ tsRows.add(tsRow);
}
+ return tsRows;
}
- private void addVectorMeasurementSchemaForTemplate(
+ private List<String[]> getVectorTimeseriesInfoForTemplate(
MNode node,
- List<Pair<PartialPath, String[]>> timeseriesSchemaList,
boolean needLast,
QueryContext queryContext,
- IMeasurementSchema schema,
- String reg,
+ VectorMeasurementSchema schema,
+ String nextNode,
String vectorId)
throws StorageGroupNotSetException, IllegalPathException {
- List<String> measurements = schema.getValueMeasurementIdList();
- for (int i = 0; i < measurements.size(); i++) {
- if (!Pattern.matches(reg.replace("*", ".*"), measurements.get(i))) {
+ List<String[]> tsRows = new ArrayList<>();
+ List<String> subMeasurements = schema.getSubMeasurementsList();
+ for (int i = 0; i < subMeasurements.size(); i++) {
+ if (!Pattern.matches(nextNode.replace("*", ".*"), subMeasurements.get(i))) {
continue;
}
PartialPath devicePath =
new PartialPath(node.getPartialPath().getDevicePath().getFullPath(), vectorId);
- String[] tsRow = new String[7];
- tsRow[0] = null;
- tsRow[1] = getStorageGroupPath(devicePath).getFullPath();
- tsRow[2] = schema.getValueTSDataTypeList().get(i).toString();
- tsRow[3] = schema.getValueTSEncodingList().get(i).toString();
- tsRow[4] = schema.getCompressor().toString();
- tsRow[5] = "-1";
- tsRow[6] =
+ String[] tsRow = new String[8];
+ tsRow[0] = devicePath.getFullPath() + "." + subMeasurements.get(i);
+ tsRow[1] = null;
+ tsRow[2] = getStorageGroupPath(devicePath).getFullPath();
+ tsRow[3] = schema.getSubMeasurementsTSDataTypeList().get(i).toString();
+ tsRow[4] = schema.getSubMeasurementsTSEncodingList().get(i).toString();
+ tsRow[5] = schema.getCompressor().toString();
+ tsRow[6] = "-1";
+ tsRow[7] =
needLast ? String.valueOf(getLastTimeStamp((MeasurementMNode) node, queryContext)) : null;
- Pair<PartialPath, String[]> temp =
- new Pair<>(new PartialPath(devicePath.getFullPath(), measurements.get(i)), tsRow);
- timeseriesSchemaList.add(temp);
+ tsRows.add(tsRow);
}
+ return tsRows;
+ }
+
+ /** For query */
+ private List<PartialPath> getVectorMeasurementPaths(MeasurementMNode node, String nextNode)
+ throws IllegalPathException {
+ List<PartialPath> paths = new ArrayList<>();
+ List<String> subMeasurements = node.getSchema().getSubMeasurementsList();
+ for (String subMeasurement : subMeasurements) {
+ if (!Pattern.matches(nextNode.replace("*", ".*"), subMeasurement)) {
+ continue;
+ }
+ paths.add(new PartialPath(node.getPartialPath().getFullPath(), subMeasurement));
+ }
+ return paths;
+ }
+
+ private List<PartialPath> getVectorMeasurementPathsForTemplate(
+ MNode node, IMeasurementSchema schema, String nextNode, String vectorId)
+ throws IllegalPathException {
+ List<PartialPath> paths = new ArrayList<>();
+ List<String> subMeasurements = schema.getSubMeasurementsList();
+ PartialPath devicePath =
+ new PartialPath(node.getPartialPath().getDevicePath().getFullPath(), vectorId);
+ for (int i = 0; i < subMeasurements.size(); i++) {
+ if (!Pattern.matches(nextNode.replace("*", ".*"), subMeasurements.get(i))) {
+ continue;
+ }
+ paths.add(new PartialPath(devicePath.getFullPath(), subMeasurements.get(i)));
+ }
+ return paths;
}
/**
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
index 65ef534..a16caf4 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
@@ -28,7 +28,6 @@ import java.util.Objects;
* VectorPartialPath represents a vector's fullPath. It not only contains the full path of vector's
* own name, but also has subSensorsPathList which contain all the fullPath of vector's sub sensors.
* e.g. VectorPartialPath1(root.sg1.d1.vector1, [root.sg1.d1.vector1.s1, root.sg1.d1.vector1.s2])
- * VectorPartialPath2(root.sg1.d1.vector2, [root.sg1.d1.vector2.s1, root.sg1.d1.vector2.s2])
*/
public class VectorPartialPath extends PartialPath {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
index e2d309b..edda52d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
@@ -201,8 +201,8 @@ public class MeasurementMNode extends MNode {
if (schema instanceof MeasurementSchema) {
return schema.getType();
} else {
- int index = schema.getMeasurementIdColumnIndex(measurementId);
- return schema.getValueTSDataTypeList().get(index);
+ int index = schema.getSubMeasurementColumnIndex(measurementId);
+ return schema.getSubMeasurementsTSDataTypeList().get(index);
}
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/template/Template.java b/server/src/main/java/org/apache/iotdb/db/metadata/template/Template.java
index 5a59c52..4c9384d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/template/Template.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/template/Template.java
@@ -163,7 +163,7 @@ public class Template {
if (schemaEntry.getValue() instanceof VectorMeasurementSchema) {
VectorMeasurementSchema vectorMeasurementSchema =
(VectorMeasurementSchema) schemaEntry.getValue();
- res.put(schemaEntry.getKey(), vectorMeasurementSchema.getValueMeasurementIdList());
+ res.put(schemaEntry.getKey(), vectorMeasurementSchema.getSubMeasurementsList());
} else {
res.put(schemaEntry.getKey(), new ArrayList<>());
}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
index f2668d3..ce02133 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
@@ -185,7 +185,7 @@ public class QueryOperator extends Operator {
List<TSDataType> seriesTypes = generator.getSeriesTypes(filterPaths);
HashMap<PartialPath, TSDataType> pathTSDataTypeHashMap = new HashMap<>();
for (int i = 0; i < filterPaths.size(); i++) {
- rawDataQueryPlan.addFilterPathInDeviceToMeasurements(filterPaths.get(i));
+ rawDataQueryPlan.addPathToDeviceToMeasurements(filterPaths.get(i));
pathTSDataTypeHashMap.put(filterPaths.get(i), seriesTypes.get(i));
}
IExpression expression = filterOperator.transformToExpression(pathTSDataTypeHashMap);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
index 6990fec..18d7c86 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
@@ -280,7 +280,7 @@ public class InsertRowPlan extends InsertPlan {
}
// for aligned timeseries
else {
- for (TSDataType dataType : measurementMNodes[i].getSchema().getValueTSDataTypeList()) {
+ for (TSDataType dataType : measurementMNodes[i].getSchema().getSubMeasurementsTSDataTypeList()) {
dataTypes[columnIndex] = dataType;
try {
values[columnIndex] =
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
index 43c474e..cbaa214 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
@@ -167,7 +167,7 @@ public class RawDataQueryPlan extends QueryPlan {
return deviceToMeasurements.getOrDefault(device, new HashSet<>());
}
- public void addFilterPathInDeviceToMeasurements(Path path) {
+ public void addPathToDeviceToMeasurements(Path path) {
deviceToMeasurements
.computeIfAbsent(path.getDevice(), key -> new HashSet<>())
.add(path.getMeasurement());
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
index 667a984..564c39d 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
@@ -112,7 +112,7 @@ public class MemUtils {
// time and index column memSize
memSize += (end - start) * (8L + 4L);
// value columns memSize
- for (TSDataType type : schema.getValueTSDataTypeList()) {
+ for (TSDataType type : schema.getSubMeasurementsTSDataTypeList()) {
if (type == TSDataType.TEXT && addingTextDataSize) {
for (int j = start; j < end; j++) {
memSize += getBinarySize(((Binary[]) insertTabletPlan.getColumns()[columnCount])[j]);
diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
index 52fbd1f..8b4c452 100644
--- a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
@@ -199,7 +199,7 @@ public class LogReplayer {
+ tPlan.getMeasurements()[i]));
columnIndex++;
} else if (tPlan.isAligned()) {
- List<TSDataType> datatypes = mNodes[i].getSchema().getValueTSDataTypeList();
+ List<TSDataType> datatypes = mNodes[i].getSchema().getSubMeasurementsTSDataTypeList();
for (int j = 0; j < datatypes.size(); j++) {
if (tPlan.getDataTypes()[columnIndex] == null) {
tPlan.getDataTypes()[columnIndex] = datatypes.get(j);
@@ -207,7 +207,7 @@ public class LogReplayer {
tPlan.markFailedMeasurementInsertion(
i,
new DataTypeMismatchException(
- mNodes[i].getSchema().getValueMeasurementIdList().get(j),
+ mNodes[i].getSchema().getSubMeasurementsList().get(j),
tPlan.getDataTypes()[columnIndex],
datatypes.get(j)));
}
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryTimeoutIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryTimeoutIT.java
index 8e10cf1..979447f 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryTimeoutIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBQueryTimeoutIT.java
@@ -51,7 +51,7 @@ public class IoTDBQueryTimeoutIT {
EnvironmentUtils.cleanEnv();
}
- /** Test show query processlist, there is supposed to no result. */
+ /** Test show query processlist. */
@Test
public void queryProcessListTest() {
String headerResult = "Time, queryId, statement, ";
@@ -71,11 +71,6 @@ public class IoTDBQueryTimeoutIT {
}
Assert.assertEquals(headerResult, headerBuilder.toString());
- int cnt = 0;
- while (resultSet.next()) {
- cnt++;
- }
- Assert.assertEquals(0, cnt);
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java b/session/src/main/java/org/apache/iotdb/session/Session.java
index 447c2b5..6322499 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -1253,10 +1253,10 @@ public class Session {
request.setIsAligned(true);
IMeasurementSchema measurementSchema = tablet.getSchemas().get(0);
request.setPrefixPath(tablet.prefixPath);
- int measurementsSize = measurementSchema.getValueMeasurementIdList().size();
+ int measurementsSize = measurementSchema.getSubMeasurementsList().size();
for (int i = 0; i < measurementsSize; i++) {
- request.addToMeasurements(measurementSchema.getValueMeasurementIdList().get(i));
- request.addToTypes(measurementSchema.getValueTSDataTypeList().get(i).ordinal());
+ request.addToMeasurements(measurementSchema.getSubMeasurementsList().get(i));
+ request.addToTypes(measurementSchema.getSubMeasurementsTSDataTypeList().get(i).ordinal());
}
request.setIsAligned(true);
} else {
@@ -1666,10 +1666,10 @@ public class Session {
}
columnIndex++;
} else {
- int measurementSize = schema.getValueMeasurementIdList().size();
+ int measurementSize = schema.getSubMeasurementsList().size();
for (int j = 0; j < measurementSize; j++) {
tablet.values[columnIndex] =
- sortList(tablet.values[columnIndex], schema.getValueTSDataTypeList().get(j), index);
+ sortList(tablet.values[columnIndex], schema.getSubMeasurementsTSDataTypeList().get(j), index);
if (tablet.bitMaps != null && tablet.bitMaps[columnIndex] != null) {
tablet.bitMaps[columnIndex] = sortBitMap(tablet.bitMaps[columnIndex], index);
}
diff --git a/session/src/main/java/org/apache/iotdb/session/SessionUtils.java b/session/src/main/java/org/apache/iotdb/session/SessionUtils.java
index f028990..9705d7f 100644
--- a/session/src/main/java/org/apache/iotdb/session/SessionUtils.java
+++ b/session/src/main/java/org/apache/iotdb/session/SessionUtils.java
@@ -50,9 +50,9 @@ public class SessionUtils {
getValueBufferOfDataType(schema.getType(), tablet, indexOfValues, valueBuffer);
indexOfValues++;
} else {
- for (int j = 0; j < schema.getValueTSDataTypeList().size(); j++) {
+ for (int j = 0; j < schema.getSubMeasurementsTSDataTypeList().size(); j++) {
getValueBufferOfDataType(
- schema.getValueTSDataTypeList().get(j), tablet, indexOfValues, valueBuffer);
+ schema.getSubMeasurementsTSDataTypeList().get(j), tablet, indexOfValues, valueBuffer);
indexOfValues++;
}
}
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
index 15bd740..c37b6ad 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
@@ -393,15 +393,15 @@ public class IoTDBSessionSimpleIT {
int rowIndex = tablet.rowSize++;
tablet.addTimestamp(rowIndex, timestamp);
tablet.addValue(
- schemaList.get(0).getValueMeasurementIdList().get(0),
+ schemaList.get(0).getSubMeasurementsList().get(0),
rowIndex,
new SecureRandom().nextLong());
tablet.addValue(
- schemaList.get(0).getValueMeasurementIdList().get(1),
+ schemaList.get(0).getSubMeasurementsList().get(1),
rowIndex,
new SecureRandom().nextInt());
tablet.addValue(
- schemaList.get(0).getValueMeasurementIdList().get(2), rowIndex, new Binary("test"));
+ schemaList.get(0).getSubMeasurementsList().get(2), rowIndex, new Binary("test"));
timestamp++;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/VectorChunkWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/VectorChunkWriterImpl.java
index 8f1e907..3447560 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/VectorChunkWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/VectorChunkWriterImpl.java
@@ -44,10 +44,10 @@ public class VectorChunkWriterImpl implements IChunkWriter {
schema.getTimeTSEncoding(),
schema.getTimeEncoder());
- List<String> valueMeasurementIdList = schema.getValueMeasurementIdList();
- List<TSDataType> valueTSDataTypeList = schema.getValueTSDataTypeList();
- List<TSEncoding> valueTSEncodingList = schema.getValueTSEncodingList();
- List<Encoder> valueEncoderList = schema.getValueEncoderList();
+ List<String> valueMeasurementIdList = schema.getSubMeasurementsList();
+ List<TSDataType> valueTSDataTypeList = schema.getSubMeasurementsTSDataTypeList();
+ List<TSEncoding> valueTSEncodingList = schema.getSubMeasurementsTSEncodingList();
+ List<Encoder> valueEncoderList = schema.getSubMeasurementsEncoderList();
valueChunkWriterList = new ArrayList<>(valueMeasurementIdList.size());
for (int i = 0; i < valueMeasurementIdList.size(); i++) {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java
index 2c8d958..86eb0dd 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java
@@ -98,7 +98,7 @@ public class Tablet {
int indexInSchema = 0;
for (IMeasurementSchema schema : schemas) {
if (schema.getType() == TSDataType.VECTOR) {
- for (String measurementId : schema.getValueMeasurementIdList()) {
+ for (String measurementId : schema.getSubMeasurementsList()) {
measurementIndex.put(measurementId, indexInSchema);
}
} else {
@@ -124,8 +124,8 @@ public class Tablet {
int indexOfSchema = measurementIndex.get(measurementId);
IMeasurementSchema measurementSchema = schemas.get(indexOfSchema);
if (measurementSchema.getType().equals(TSDataType.VECTOR)) {
- int indexInVector = measurementSchema.getMeasurementIdColumnIndex(measurementId);
- TSDataType dataType = measurementSchema.getValueTSDataTypeList().get(indexInVector);
+ int indexInVector = measurementSchema.getSubMeasurementColumnIndex(measurementId);
+ TSDataType dataType = measurementSchema.getSubMeasurementsTSDataTypeList().get(indexInVector);
addValueOfDataType(dataType, rowIndex, indexInVector, value);
} else {
addValueOfDataType(measurementSchema.getType(), rowIndex, indexOfSchema, value);
@@ -210,7 +210,7 @@ public class Tablet {
int valueColumnsSize = 0;
for (IMeasurementSchema schema : schemas) {
if (schema instanceof VectorMeasurementSchema) {
- valueColumnsSize += schema.getValueMeasurementIdList().size();
+ valueColumnsSize += schema.getSubMeasurementsList().size();
} else {
valueColumnsSize++;
}
@@ -231,8 +231,8 @@ public class Tablet {
}
private int buildVectorColumns(VectorMeasurementSchema schema, int idx) {
- for (int i = 0; i < schema.getValueMeasurementIdList().size(); i++) {
- TSDataType dataType = schema.getValueTSDataTypeList().get(i);
+ for (int i = 0; i < schema.getSubMeasurementsList().size(); i++) {
+ TSDataType dataType = schema.getSubMeasurementsTSDataTypeList().get(i);
values[idx] = createValueColumnOfDataType(dataType);
idx++;
}
@@ -281,8 +281,8 @@ public class Tablet {
valueOccupation += calOccupationOfOneColumn(schema.getType(), columnIndex);
columnIndex++;
} else {
- for (int j = 0; j < schema.getValueTSDataTypeList().size(); j++) {
- TSDataType dataType = schema.getValueTSDataTypeList().get(j);
+ for (int j = 0; j < schema.getSubMeasurementsTSDataTypeList().size(); j++) {
+ TSDataType dataType = schema.getSubMeasurementsTSDataTypeList().get(j);
valueOccupation += calOccupationOfOneColumn(dataType, columnIndex);
columnIndex++;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java
index fb3358d..8898bf1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java
@@ -49,15 +49,15 @@ public interface IMeasurementSchema {
Map<String, String> getProps();
- List<String> getValueMeasurementIdList();
+ List<String> getSubMeasurementsList();
- List<TSDataType> getValueTSDataTypeList();
+ List<TSDataType> getSubMeasurementsTSDataTypeList();
- List<TSEncoding> getValueTSEncodingList();
+ List<TSEncoding> getSubMeasurementsTSEncodingList();
- List<Encoder> getValueEncoderList();
+ List<Encoder> getSubMeasurementsEncoderList();
- int getMeasurementIdColumnIndex(String measurementId);
+ int getSubMeasurementColumnIndex(String measurementId);
int serializeTo(ByteBuffer buffer);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
index 4778ca6..26e6060 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
@@ -223,22 +223,22 @@ public class MeasurementSchema
}
@Override
- public List<String> getValueMeasurementIdList() {
+ public List<String> getSubMeasurementsList() {
throw new UnsupportedOperationException("unsupported method for MeasurementSchema");
}
@Override
- public List<TSDataType> getValueTSDataTypeList() {
+ public List<TSDataType> getSubMeasurementsTSDataTypeList() {
throw new UnsupportedOperationException("unsupported method for MeasurementSchema");
}
@Override
- public List<TSEncoding> getValueTSEncodingList() {
+ public List<TSEncoding> getSubMeasurementsTSEncodingList() {
throw new UnsupportedOperationException("unsupported method for MeasurementSchema");
}
@Override
- public List<Encoder> getValueEncoderList() {
+ public List<Encoder> getSubMeasurementsEncoderList() {
throw new UnsupportedOperationException("unsupported method for MeasurementSchema");
}
@@ -393,7 +393,7 @@ public class MeasurementSchema
}
@Override
- public int getMeasurementIdColumnIndex(String measurementId) {
+ public int getSubMeasurementColumnIndex(String measurementId) {
return 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
index f9eb2b6..c50302c 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/VectorMeasurementSchema.java
@@ -43,8 +43,8 @@ import java.util.Objects;
public class VectorMeasurementSchema
implements IMeasurementSchema, Comparable<VectorMeasurementSchema>, Serializable {
- private String vectorMeausurementId;
- private Map<String, Integer> measurementsToIndexMap;
+ private String vectorMeasurementId;
+ private Map<String, Integer> subMeasurementsIndexMap;
private byte[] types;
private byte[] encodings;
private TSEncodingBuilder[] encodingConverters;
@@ -58,10 +58,10 @@ public class VectorMeasurementSchema
TSDataType[] types,
TSEncoding[] encodings,
CompressionType compressionType) {
- this.vectorMeausurementId = measurementId;
- this.measurementsToIndexMap = new HashMap<>();
+ this.vectorMeasurementId = measurementId;
+ this.subMeasurementsIndexMap = new HashMap<>();
for (int i = 0; i < measurements.length; i++) {
- measurementsToIndexMap.put(measurements[i], i);
+ subMeasurementsIndexMap.put(measurements[i], i);
}
byte[] typesInByte = new byte[types.length];
for (int i = 0; i < types.length; i++) {
@@ -79,10 +79,10 @@ public class VectorMeasurementSchema
}
public VectorMeasurementSchema(String measurementId, String[] measurements, TSDataType[] types) {
- this.vectorMeausurementId = measurementId;
- this.measurementsToIndexMap = new HashMap<>();
+ this.vectorMeasurementId = measurementId;
+ this.subMeasurementsIndexMap = new HashMap<>();
for (int i = 0; i < measurements.length; i++) {
- measurementsToIndexMap.put(measurements[i], i);
+ subMeasurementsIndexMap.put(measurements[i], i);
}
this.types = new byte[types.length];
for (int i = 0; i < types.length; i++) {
@@ -111,7 +111,7 @@ public class VectorMeasurementSchema
@Override
public String getMeasurementId() {
- return vectorMeausurementId;
+ return vectorMeasurementId;
}
@Override
@@ -159,16 +159,16 @@ public class VectorMeasurementSchema
}
@Override
- public List<String> getValueMeasurementIdList() {
- String[] measurements = new String[measurementsToIndexMap.size()];
- for (Map.Entry<String, Integer> entry : measurementsToIndexMap.entrySet()) {
+ public List<String> getSubMeasurementsList() {
+ String[] measurements = new String[subMeasurementsIndexMap.size()];
+ for (Map.Entry<String, Integer> entry : subMeasurementsIndexMap.entrySet()) {
measurements[entry.getValue()] = entry.getKey();
}
return Arrays.asList(measurements);
}
@Override
- public List<TSDataType> getValueTSDataTypeList() {
+ public List<TSDataType> getSubMeasurementsTSDataTypeList() {
List<TSDataType> dataTypeList = new ArrayList<>();
for (byte dataType : types) {
dataTypeList.add(TSDataType.deserialize(dataType));
@@ -177,7 +177,7 @@ public class VectorMeasurementSchema
}
@Override
- public List<TSEncoding> getValueTSEncodingList() {
+ public List<TSEncoding> getSubMeasurementsTSEncodingList() {
List<TSEncoding> encodingList = new ArrayList<>();
for (byte encoding : encodings) {
encodingList.add(TSEncoding.deserialize(encoding));
@@ -186,7 +186,7 @@ public class VectorMeasurementSchema
}
@Override
- public List<Encoder> getValueEncoderList() {
+ public List<Encoder> getSubMeasurementsEncoderList() {
List<Encoder> encoderList = new ArrayList<>();
for (int i = 0; i < encodings.length; i++) {
TSEncoding encoding = TSEncoding.deserialize(encodings[i]);
@@ -202,17 +202,17 @@ public class VectorMeasurementSchema
}
@Override
- public int getMeasurementIdColumnIndex(String measurementId) {
- return measurementsToIndexMap.get(measurementId);
+ public int getSubMeasurementColumnIndex(String measurementId) {
+ return subMeasurementsIndexMap.get(measurementId);
}
@Override
public int serializeTo(ByteBuffer buffer) {
int byteLen = 0;
- byteLen += ReadWriteIOUtils.write(vectorMeausurementId, buffer);
- byteLen += ReadWriteIOUtils.write(measurementsToIndexMap.size(), buffer);
+ byteLen += ReadWriteIOUtils.write(vectorMeasurementId, buffer);
+ byteLen += ReadWriteIOUtils.write(subMeasurementsIndexMap.size(), buffer);
- for (Map.Entry<String, Integer> entry : measurementsToIndexMap.entrySet()) {
+ for (Map.Entry<String, Integer> entry : subMeasurementsIndexMap.entrySet()) {
byteLen += ReadWriteIOUtils.write(entry.getKey(), buffer);
byteLen += ReadWriteIOUtils.write(entry.getValue(), buffer);
}
@@ -230,10 +230,10 @@ public class VectorMeasurementSchema
@Override
public int serializeTo(OutputStream outputStream) throws IOException {
int byteLen = 0;
- byteLen += ReadWriteIOUtils.write(vectorMeausurementId, outputStream);
- byteLen += ReadWriteIOUtils.write(measurementsToIndexMap.size(), outputStream);
+ byteLen += ReadWriteIOUtils.write(vectorMeasurementId, outputStream);
+ byteLen += ReadWriteIOUtils.write(subMeasurementsIndexMap.size(), outputStream);
- for (Map.Entry<String, Integer> entry : measurementsToIndexMap.entrySet()) {
+ for (Map.Entry<String, Integer> entry : subMeasurementsIndexMap.entrySet()) {
byteLen += ReadWriteIOUtils.write(entry.getKey(), outputStream);
byteLen += ReadWriteIOUtils.write(entry.getValue(), outputStream);
}
@@ -267,7 +267,7 @@ public class VectorMeasurementSchema
public static VectorMeasurementSchema deserializeFrom(InputStream inputStream)
throws IOException {
VectorMeasurementSchema vectorMeasurementSchema = new VectorMeasurementSchema();
- vectorMeasurementSchema.vectorMeausurementId = ReadWriteIOUtils.readString(inputStream);
+ vectorMeasurementSchema.vectorMeasurementId = ReadWriteIOUtils.readString(inputStream);
int measurementSize = ReadWriteIOUtils.readInt(inputStream);
Map<String, Integer> measurementsToIndexMap = new HashMap<>();
@@ -275,7 +275,7 @@ public class VectorMeasurementSchema
measurementsToIndexMap.put(
ReadWriteIOUtils.readString(inputStream), ReadWriteIOUtils.readInt(inputStream));
}
- vectorMeasurementSchema.measurementsToIndexMap = measurementsToIndexMap;
+ vectorMeasurementSchema.subMeasurementsIndexMap = measurementsToIndexMap;
byte[] types = new byte[measurementSize];
for (int i = 0; i < measurementSize; i++) {
@@ -295,14 +295,14 @@ public class VectorMeasurementSchema
public static VectorMeasurementSchema deserializeFrom(ByteBuffer buffer) {
VectorMeasurementSchema vectorMeasurementSchema = new VectorMeasurementSchema();
- vectorMeasurementSchema.vectorMeausurementId = ReadWriteIOUtils.readString(buffer);
+ vectorMeasurementSchema.vectorMeasurementId = ReadWriteIOUtils.readString(buffer);
int measurementSize = ReadWriteIOUtils.readInt(buffer);
Map<String, Integer> measurementsToIndexMap = new HashMap<>();
for (int i = 0; i < measurementSize; i++) {
measurementsToIndexMap.put(
ReadWriteIOUtils.readString(buffer), ReadWriteIOUtils.readInt(buffer));
}
- vectorMeasurementSchema.measurementsToIndexMap = measurementsToIndexMap;
+ vectorMeasurementSchema.subMeasurementsIndexMap = measurementsToIndexMap;
byte[] types = new byte[measurementSize];
for (int i = 0; i < measurementSize; i++) {
@@ -331,13 +331,13 @@ public class VectorMeasurementSchema
VectorMeasurementSchema that = (VectorMeasurementSchema) o;
return Arrays.equals(types, that.types)
&& Arrays.equals(encodings, that.encodings)
- && Objects.equals(vectorMeausurementId, that.vectorMeausurementId)
+ && Objects.equals(vectorMeasurementId, that.vectorMeasurementId)
&& Objects.equals(compressor, that.compressor);
}
@Override
public int hashCode() {
- return Objects.hash(vectorMeausurementId, types, encodings, compressor);
+ return Objects.hash(vectorMeasurementId, types, encodings, compressor);
}
/** compare by vector name */
@@ -346,16 +346,16 @@ public class VectorMeasurementSchema
if (equals(o)) {
return 0;
} else {
- return this.vectorMeausurementId.compareTo(o.vectorMeausurementId);
+ return this.vectorMeasurementId.compareTo(o.vectorMeasurementId);
}
}
@Override
public String toString() {
StringContainer sc = new StringContainer("");
- sc.addTail(vectorMeausurementId, ",");
+ sc.addTail(vectorMeasurementId, ",");
// string is not in real order
- for (Map.Entry<String, Integer> entry : measurementsToIndexMap.entrySet()) {
+ for (Map.Entry<String, Integer> entry : subMeasurementsIndexMap.entrySet()) {
sc.addTail(
"[",
entry.getKey(),
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/VectorMeasurementSchemaStub.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/VectorMeasurementSchemaStub.java
index d4fbef2..4763f22 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/VectorMeasurementSchemaStub.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/writer/VectorMeasurementSchemaStub.java
@@ -79,22 +79,22 @@ public class VectorMeasurementSchemaStub implements IMeasurementSchema {
}
@Override
- public List<String> getValueMeasurementIdList() {
+ public List<String> getSubMeasurementsList() {
return Arrays.asList("s1", "s2", "s3");
}
@Override
- public List<TSDataType> getValueTSDataTypeList() {
+ public List<TSDataType> getSubMeasurementsTSDataTypeList() {
return Arrays.asList(TSDataType.FLOAT, TSDataType.INT32, TSDataType.DOUBLE);
}
@Override
- public List<TSEncoding> getValueTSEncodingList() {
+ public List<TSEncoding> getSubMeasurementsTSEncodingList() {
return Arrays.asList(TSEncoding.PLAIN, TSEncoding.PLAIN, TSEncoding.PLAIN);
}
@Override
- public List<Encoder> getValueEncoderList() {
+ public List<Encoder> getSubMeasurementsEncoderList() {
return Arrays.asList(
new PlainEncoder(TSDataType.FLOAT, 0),
new PlainEncoder(TSDataType.INT32, 0),
@@ -122,7 +122,7 @@ public class VectorMeasurementSchemaStub implements IMeasurementSchema {
}
@Override
- public int getMeasurementIdColumnIndex(String measurementId) {
+ public int getSubMeasurementColumnIndex(String measurementId) {
return 0;
}
}