You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/11/01 03:08:23 UTC
[iotdb] 01/03: fix more insert bugs
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch new_vector
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8d6985e0d9558935af42ad60593b7a5e3c7e5ae7
Author: HTHou <hh...@outlook.com>
AuthorDate: Mon Nov 1 10:52:54 2021 +0800
fix more insert bugs
---
.../iotdb/db/engine/memtable/AbstractMemTable.java | 6 ++---
.../apache/iotdb/db/engine/memtable/IMemTable.java | 2 +-
.../db/engine/memtable/IWritableMemChunk.java | 5 ++--
.../db/engine/memtable/VectorWritableMemChunk.java | 29 ++++++++++++----------
.../iotdb/db/engine/memtable/WritableMemChunk.java | 4 +--
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 12 ---------
.../iotdb/db/qp/physical/crud/InsertPlan.java | 15 -----------
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 12 ++-------
.../db/qp/physical/crud/InsertTabletPlan.java | 12 ++-------
.../iotdb/db/writelog/recover/LogReplayer.java | 15 +----------
.../db/engine/memtable/MemTableFlushTaskTest.java | 16 ++++++------
.../db/engine/memtable/MemTableTestUtils.java | 12 +++++----
.../db/engine/memtable/PrimitiveMemTableTest.java | 14 ++++++-----
.../iotdb/db/qp/physical/InsertRowPlanTest.java | 2 +-
14 files changed, 53 insertions(+), 103 deletions(-)
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 687e226..21c07e9 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
@@ -234,9 +234,9 @@ public abstract class AbstractMemTable implements IMemTable {
@Override
public void writeAlignedRow(
- String deviceId, IMeasurementSchema schema, long insertTime, Object objectValue) {
+ String deviceId, IMeasurementSchema schema, long insertTime, Object[] objectValue) {
IWritableMemChunk memSeries = createVectorMemChunkIfNotExistAndGet(deviceId, schema);
- memSeries.write(insertTime, objectValue);
+ memSeries.writeVector(insertTime, objectValue, schema);
}
@SuppressWarnings("squid:S3776") // high Cognitive Complexity
@@ -289,9 +289,9 @@ public abstract class AbstractMemTable implements IMemTable {
insertTabletPlan.getPrefixPath().getFullPath(), vectorSchema);
memSeries.writeVector(
insertTabletPlan.getTimes(),
- insertTabletPlan.getMeasurements(),
insertTabletPlan.getColumns(),
insertTabletPlan.getBitMaps(),
+ vectorSchema,
start,
end);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
index b1d9f2e..afa9903 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
@@ -47,7 +47,7 @@ public interface IMemTable {
void write(String deviceId, IMeasurementSchema schema, long insertTime, Object objectValue);
void writeAlignedRow(
- String deviceId, IMeasurementSchema schema, long insertTime, Object objectValue);
+ String deviceId, IMeasurementSchema schema, long insertTime, Object[] objectValue);
/**
* write data in the range [start, end). Null value in each column values will be replaced by the
* subsequent non-null value, e.g., {1, null, 3, null, 5} will be {1, 3, 5, null, 5}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
index 42e678b..8aa8b45 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
@@ -24,7 +24,6 @@ import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.BitMap;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-
import java.util.List;
public interface IWritableMemChunk {
@@ -59,7 +58,7 @@ public interface IWritableMemChunk {
void write(long insertTime, Object objectValue);
- void writeVector(long insertTime, String[] measurements, Object[] objectValue);
+ void writeVector(long insertTime, Object[] objectValue, IMeasurementSchema schema);
/**
* write data in the range [start, end). Null value in the valueList will be replaced by the
@@ -70,9 +69,9 @@ public interface IWritableMemChunk {
void writeVector(
long[] times,
- String[] measurements,
Object[] valueList,
BitMap[] bitMaps,
+ IMeasurementSchema schema,
int start,
int end);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/VectorWritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/VectorWritableMemChunk.java
index 9ceb1bd..61f3d35 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/VectorWritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/VectorWritableMemChunk.java
@@ -10,7 +10,7 @@ import org.apache.iotdb.tsfile.utils.BitMap;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
import org.apache.iotdb.tsfile.write.chunk.VectorChunkWriterImpl;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-
+import org.apache.iotdb.tsfile.write.schema.VectorMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -113,8 +113,8 @@ public class VectorWritableMemChunk implements IWritableMemChunk {
}
@Override
- public void writeVector(long insertTime, String[] measurementIds, Object[] objectValue) {
- int[] columnOrder = checkColumnOrder(measurementIds);
+ public void writeVector(long insertTime, Object[] objectValue, IMeasurementSchema schema) {
+ int[] columnOrder = checkColumnOrder(schema);
putVector(insertTime, objectValue, columnOrder);
}
@@ -127,19 +127,21 @@ public class VectorWritableMemChunk implements IWritableMemChunk {
@Override
public void writeVector(
long[] times,
- String[] measurementIds,
Object[] valueList,
BitMap[] bitMaps,
+ IMeasurementSchema schema,
int start,
int end) {
- int[] columnOrder = checkColumnOrder(measurementIds);
+ int[] columnOrder = checkColumnOrder(schema);
putVectors(times, valueList, bitMaps, columnOrder, start, end);
}
- private int[] checkColumnOrder(String[] measurementIds) {
- int[] columnOrder = new int[measurementIds.length];
- for (int i = 0; i < measurementIds.length; i++) {
- columnOrder[i] = vectorIdIndexMap.get(measurementIds[i]);
+ private int[] checkColumnOrder(IMeasurementSchema schema) {
+ VectorMeasurementSchema vectorSchema = (VectorMeasurementSchema) schema;
+ List<String> measurementIdList = vectorSchema.getSubMeasurementsList();
+ int[] columnOrder = new int[measurementIdList.size()];
+ for (int i = 0; i < measurementIdList.size(); i++) {
+ columnOrder[i] = vectorIdIndexMap.get(measurementIdList.get(i));
}
return columnOrder;
}
@@ -151,14 +153,15 @@ public class VectorWritableMemChunk implements IWritableMemChunk {
@Override
public IMeasurementSchema getSchema() {
- // TODO Auto-generated method stub
- return null;
+ return schema;
}
@Override
public TVList getSortedTvListForQuery() {
- // TODO Auto-generated method stub
- return null;
+ sortTVList();
+ // increase reference count
+ list.increaseReferenceCount();
+ return list;
}
@Override
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
index 201391f..4bfcee5 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
@@ -72,7 +72,7 @@ public class WritableMemChunk implements IWritableMemChunk {
}
@Override
- public void writeVector(long insertTime, String[] measurementIds, Object[] objectValue) {
+ public void writeVector(long insertTime, Object[] objectValue, IMeasurementSchema schema) {
throw new UnSupportedDataTypeException(UNSUPPORTED_TYPE + list.getDataType());
}
@@ -112,9 +112,9 @@ public class WritableMemChunk implements IWritableMemChunk {
@Override
public void writeVector(
long[] times,
- String[] measurements,
Object[] valueList,
BitMap[] bitMaps,
+ IMeasurementSchema schema,
int start,
int end) {
throw new UnSupportedDataTypeException(UNSUPPORTED_TYPE + list.getDataType());
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 5327b64..e87ba8a 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
@@ -1360,10 +1360,6 @@ public class PlanExecutor implements IPlanExecutor {
plan.setMeasurementMNodes(new IMeasurementMNode[plan.getMeasurements().length]);
// check whether types are match
getSeriesSchemas(plan);
- // we do not need to infer data type for insertRowsOfOneDevicePlan
- if (plan.isAligned()) {
- plan.setPrefixPathForAlignTimeSeries(plan.getPrefixPath().getDevicePath());
- }
}
// ok, we can begin to write data into the engine..
StorageEngine.getInstance().insert(insertRowsOfOneDevicePlan);
@@ -1448,10 +1444,6 @@ public class PlanExecutor implements IPlanExecutor {
}
// check whether types are match
getSeriesSchemas(insertRowPlan);
- if (insertRowPlan.isAligned()) {
- insertRowPlan.setPrefixPathForAlignTimeSeries(
- insertRowPlan.getPrefixPath().getDevicePath());
- }
insertRowPlan.transferType();
StorageEngine.getInstance().insert(insertRowPlan);
if (insertRowPlan.getFailedMeasurements() != null) {
@@ -1501,10 +1493,6 @@ public class PlanExecutor implements IPlanExecutor {
insertTabletPlan.setMeasurementMNodes(
new IMeasurementMNode[insertTabletPlan.getMeasurements().length]);
getSeriesSchemas(insertTabletPlan);
- if (insertTabletPlan.isAligned()) {
- insertTabletPlan.setPrefixPathForAlignTimeSeries(
- insertTabletPlan.getPrefixPath().getDevicePath());
- }
StorageEngine.getInstance().insertTablet(insertTabletPlan);
if (insertTabletPlan.getFailedMeasurements() != null) {
checkFailedMeasurments(insertTabletPlan);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
index 7e47c98..43a57da 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
@@ -33,7 +33,6 @@ import java.util.List;
public abstract class InsertPlan extends PhysicalPlan {
protected PartialPath prefixPath;
- protected PartialPath originalPrefixPath;
protected boolean isAligned;
protected String[] measurements;
// get from client
@@ -59,14 +58,6 @@ public abstract class InsertPlan extends PhysicalPlan {
this.prefixPath = prefixPath;
}
- /*
- the original prefixPath needs to be recorded and recovered by recoverFromFailure because cluster may try to execute this plan twice
- */
- public void setPrefixPathForAlignTimeSeries(PartialPath prefixPath) {
- this.originalPrefixPath = this.prefixPath;
- this.prefixPath = prefixPath;
- }
-
public String[] getMeasurements() {
return this.measurements;
}
@@ -153,9 +144,6 @@ public abstract class InsertPlan extends PhysicalPlan {
* @return the plan itself, with measurements replaced with the previously failed ones.
*/
public InsertPlan getPlanFromFailed() {
- if (isAligned && originalPrefixPath != null) {
- prefixPath = originalPrefixPath;
- }
if (failedMeasurements == null) {
return null;
}
@@ -183,9 +171,6 @@ public abstract class InsertPlan extends PhysicalPlan {
/** Reset measurements from failed measurements (if any), as if no failure had ever happened. */
public void recoverFromFailure() {
- if (isAligned && originalPrefixPath != null) {
- prefixPath = originalPrefixPath;
- }
if (failedMeasurements == null) {
return;
}
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 c4ee4df..3907c16 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
@@ -340,11 +340,7 @@ public class InsertRowPlan extends InsertPlan {
public void subSerialize(DataOutputStream stream) throws IOException {
stream.writeLong(time);
- if (isAligned && originalPrefixPath != null) {
- putString(stream, originalPrefixPath.getFullPath());
- } else {
- putString(stream, prefixPath.getFullPath());
- }
+ putString(stream, prefixPath.getFullPath());
serializeMeasurementsAndValues(stream);
}
@@ -495,11 +491,7 @@ public class InsertRowPlan extends InsertPlan {
public void subSerialize(ByteBuffer buffer) {
buffer.putLong(time);
- if (isAligned && originalPrefixPath != null) {
- putString(buffer, originalPrefixPath.getFullPath());
- } else {
- putString(buffer, prefixPath.getFullPath());
- }
+ putString(buffer, prefixPath.getFullPath());
serializeMeasurementsAndValues(buffer);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
index b51a396..382deaf 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
@@ -160,11 +160,7 @@ public class InsertTabletPlan extends InsertPlan {
}
public void subSerialize(DataOutputStream stream) throws IOException {
- if (isAligned && originalPrefixPath != null) {
- putString(stream, originalPrefixPath.getFullPath());
- } else {
- putString(stream, prefixPath.getFullPath());
- }
+ putString(stream, prefixPath.getFullPath());
writeMeasurements(stream);
writeDataTypes(stream);
writeTimes(stream);
@@ -258,11 +254,7 @@ public class InsertTabletPlan extends InsertPlan {
}
public void subSerialize(ByteBuffer buffer) {
- if (isAligned && originalPrefixPath != null) {
- putString(buffer, originalPrefixPath.getFullPath());
- } else {
- putString(buffer, prefixPath.getFullPath());
- }
+ putString(buffer, prefixPath.getFullPath());
writeMeasurements(buffer);
writeDataTypes(buffer);
writeTimes(buffer);
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 0c5184b..65ad4c4 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
@@ -191,10 +191,6 @@ public class LogReplayer {
}
// set measurementMNodes, WAL already serializes the real data type, so no need to infer type
plan.setMeasurementMNodes(mNodes);
-
- if (plan.isAligned()) {
- plan.setPrefixPathForAlignTimeSeries(plan.getPrefixPath().getDevicePath());
- }
// mark failed plan manually
checkDataTypeAndMarkFailed(mNodes, plan);
if (plan instanceof InsertRowPlan) {
@@ -214,20 +210,11 @@ public class LogReplayer {
tPlan.getPrefixPath().getFullPath()
+ IoTDBConstant.PATH_SEPARATOR
+ tPlan.getMeasurements()[i]));
- } else if (!tPlan.isAligned() && mNodes[i].getSchema().getType() != tPlan.getDataTypes()[i]) {
+ } else if (mNodes[i].getSchema().getType() != tPlan.getDataTypes()[i]) {
tPlan.markFailedMeasurementInsertion(
i,
new DataTypeMismatchException(
mNodes[i].getName(), tPlan.getDataTypes()[i], mNodes[i].getSchema().getType()));
- } else if (tPlan.isAligned()
- && mNodes[i].getSchema().getSubMeasurementsTSDataTypeList().get(i)
- != tPlan.getDataTypes()[i]) {
- tPlan.markFailedMeasurementInsertion(
- i,
- new DataTypeMismatchException(
- mNodes[i].getName() + "." + mNodes[i].getSchema().getSubMeasurementsList().get(i),
- tPlan.getDataTypes()[i],
- mNodes[i].getSchema().getSubMeasurementsTSDataTypeList().get(i)));
}
}
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
index d682c2f..cc158c9 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
@@ -112,7 +112,7 @@ public class MemTableFlushTaskTest {
assertTrue(
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.isEmpty());
memTableFlushTask.syncFlushMemTable();
writer.makeMetadataVisible();
@@ -120,14 +120,14 @@ public class MemTableFlushTaskTest {
1,
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.size());
ChunkMetadata chunkMetaData =
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.get(0);
- assertEquals("vectorName.sensor0", chunkMetaData.getMeasurementUid());
+ assertEquals("sensor0", chunkMetaData.getMeasurementUid());
assertEquals(startTime, chunkMetaData.getStartTime());
assertEquals(endTime, chunkMetaData.getEndTime());
assertEquals(TSDataType.BOOLEAN, chunkMetaData.getDataType());
@@ -142,7 +142,7 @@ public class MemTableFlushTaskTest {
assertTrue(
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.isEmpty());
memTableFlushTask.syncFlushMemTable();
writer.makeMetadataVisible();
@@ -150,14 +150,14 @@ public class MemTableFlushTaskTest {
1,
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.size());
ChunkMetadata chunkMetaData =
writer
.getVisibleMetadataList(
- MemTableTestUtils.deviceId0, "vectorName.sensor0", TSDataType.BOOLEAN)
+ MemTableTestUtils.deviceId0, "sensor0", TSDataType.BOOLEAN)
.get(0);
- assertEquals("vectorName.sensor0", chunkMetaData.getMeasurementUid());
+ assertEquals("sensor0", chunkMetaData.getMeasurementUid());
assertEquals(startTime, chunkMetaData.getStartTime());
assertEquals(endTime, chunkMetaData.getEndTime());
assertEquals(TSDataType.BOOLEAN, chunkMetaData.getDataType());
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
index 558d5ed..8cfffb5 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableTestUtils.java
@@ -90,14 +90,16 @@ public class MemTableTestUtils {
encodings[1] = TSEncoding.GORILLA;
IMeasurementMNode[] mNodes = new IMeasurementMNode[2];
- IMeasurementSchema schema =
- new VectorMeasurementSchema("vectorName", measurements, dataTypes, encodings);
- mNodes[0] = MeasurementMNode.getMeasurementMNode(null, "sensor0", schema, null);
- mNodes[1] = MeasurementMNode.getMeasurementMNode(null, "sensor1", schema, null);
+ IMeasurementSchema schema0 =
+ new UnaryMeasurementSchema(measurements[0], dataTypes[0], encodings[0]);
+ IMeasurementSchema schema1 =
+ new UnaryMeasurementSchema(measurements[1], dataTypes[1], encodings[1]);
+ mNodes[0] = MeasurementMNode.getMeasurementMNode(null, "sensor0", schema0, null);
+ mNodes[1] = MeasurementMNode.getMeasurementMNode(null, "sensor1", schema1, null);
InsertTabletPlan insertTabletPlan =
new InsertTabletPlan(
- new PartialPath(deviceId0), new String[] {"(sensor0,sensor1)"}, dataTypesList);
+ new PartialPath(deviceId0), measurements, dataTypesList);
insertTabletPlan.setAligned(true);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java b/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
index 1ee2c61..4273086 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
@@ -343,17 +343,19 @@ public class PrimitiveMemTableTest {
encodings[0] = TSEncoding.PLAIN;
encodings[1] = TSEncoding.GORILLA;
- String deviceId = "root.sg.device5";
+ String deviceId = "root.sg.vectorDevice5";
IMeasurementMNode[] mNodes = new IMeasurementMNode[2];
- IMeasurementSchema schema =
- new VectorMeasurementSchema("$#$0", measurements, dataTypes, encodings);
- mNodes[0] = MeasurementMNode.getMeasurementMNode(null, "sensor0", schema, null);
- mNodes[1] = MeasurementMNode.getMeasurementMNode(null, "sensor1", schema, null);
+ IMeasurementSchema schema0 =
+ new UnaryMeasurementSchema(measurements[0], dataTypes[0], encodings[0]);
+ IMeasurementSchema schema1 =
+ new UnaryMeasurementSchema(measurements[1], dataTypes[1], encodings[1]);
+ mNodes[0] = MeasurementMNode.getMeasurementMNode(null, "sensor0", schema0, null);
+ mNodes[1] = MeasurementMNode.getMeasurementMNode(null, "sensor1", schema1, null);
InsertTabletPlan insertTabletPlan =
new InsertTabletPlan(
- new PartialPath(deviceId), new String[] {"(sensor0,sensor1)"}, dataTypesList);
+ new PartialPath(deviceId), measurements, dataTypesList);
long[] times = new long[100];
Object[] columns = new Object[2];
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
index 07db55d..3bc2148 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/physical/InsertRowPlanTest.java
@@ -120,7 +120,7 @@ public class InsertRowPlanTest {
executor.insert(vectorRowPlan);
Assert.assertEquals(
- "[vector, vector, vector]", Arrays.toString(vectorRowPlan.getMeasurementMNodes()));
+ "[s1, s2, s3]", Arrays.toString(vectorRowPlan.getMeasurementMNodes()));
QueryPlan queryPlan =
(QueryPlan) processor.parseSQLToPhysicalPlan("select * from root.isp.d1.vector");