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
The following commit(s) were added to refs/heads/new_vector by this push:
new db347ba fix release flushed tvlist npe
db347ba is described below
commit db347ba5f6557b8b90dd3871e498eb891c3fd036
Author: HTHou <[email protected]>
AuthorDate: Mon Nov 1 17:22:37 2021 +0800
fix release flushed tvlist npe
---
.../java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java | 7 ++++---
.../org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java | 4 ++--
.../apache/iotdb/db/engine/memtable/VectorWritableMemChunk.java | 7 ++++++-
.../org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java | 6 +++---
4 files changed, 15 insertions(+), 9 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 dcbc9ac..bee5e10 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
@@ -115,12 +115,13 @@ public abstract class AbstractMemTable implements
IMemTable {
Map<String, IWritableMemChunk> memSeries =
memTableMap.computeIfAbsent(deviceId, k -> new HashMap<>());
+ VectorMeasurementSchema vectorSchema = (VectorMeasurementSchema) schema;
return memSeries.computeIfAbsent(
- schema.getMeasurementId(),
+ vectorSchema.getMeasurementId(),
k -> {
seriesNumber++;
- totalPointsNumThreshold += avgSeriesPointNumThreshold +
schema.getSubMeasurementsCount();
- return genVectorMemSeries(schema);
+ totalPointsNumThreshold += avgSeriesPointNumThreshold +
vectorSchema.getSubMeasurementsCount();
+ return genVectorMemSeries(vectorSchema);
});
}
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 a827a1f..616efd5 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
@@ -20,7 +20,7 @@
package org.apache.iotdb.db.engine.memtable;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-
+import org.apache.iotdb.tsfile.write.schema.VectorMeasurementSchema;
import java.util.HashMap;
import java.util.Map;
@@ -43,7 +43,7 @@ public class PrimitiveMemTable extends AbstractMemTable {
@Override
protected IWritableMemChunk genVectorMemSeries(IMeasurementSchema schema) {
- return new VectorWritableMemChunk(schema);
+ return new VectorWritableMemChunk((VectorMeasurementSchema) schema);
}
@Override
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 2bcf273..5889f08 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
@@ -28,7 +28,7 @@ public class VectorWritableMemChunk implements
IWritableMemChunk {
private static final String UNSUPPORTED_TYPE = "Unsupported data type:";
private static final Logger LOGGER =
LoggerFactory.getLogger(VectorWritableMemChunk.class);
- public VectorWritableMemChunk(IMeasurementSchema schema) {
+ public VectorWritableMemChunk(VectorMeasurementSchema schema) {
this.schema = schema;
vectorIdIndexMap = new HashMap<>();
for (int i = 0; i < schema.getSubMeasurementsCount(); i++) {
@@ -152,6 +152,11 @@ public class VectorWritableMemChunk implements
IWritableMemChunk {
}
@Override
+ public TVList getTVList() {
+ return list;
+ }
+
+ @Override
public long count() {
return list.size() * vectorIdIndexMap.size();
}
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 bdd9e3b..ef35f4d 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
@@ -33,7 +33,7 @@ import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.read.common.TimeRange;
import org.apache.iotdb.tsfile.read.reader.IPointReader;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-
+import org.apache.iotdb.tsfile.write.schema.VectorMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -163,11 +163,11 @@ public class ReadOnlyMemChunk {
this.chunkPointReader =
tvList.getIterator(floatPrecision, encoding, chunkDataSize,
deletionList);
- initVectorChunkMeta(schema);
+ initVectorChunkMeta((VectorMeasurementSchema) schema);
}
@SuppressWarnings("squid:S3776") // high Cognitive Complexity
- private void initVectorChunkMeta(IMeasurementSchema schema)
+ private void initVectorChunkMeta(VectorMeasurementSchema schema)
throws IOException, QueryProcessException {
Statistics timeStatistics = Statistics.getStatsByType(TSDataType.VECTOR);
IChunkMetadata timeChunkMetadata =