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 =

Reply via email to