You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2021/05/13 04:19:41 UTC

[iotdb] 02/02: [IOTDB-1378] MetadataIndexTree constructs error when existing more than one chunks in vector

This is an automated email from the ASF dual-hosted git repository.

sunzesong pushed a commit to branch metadata_bug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 0be795a64dba865d445d255ec1d9d62358387c65
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Thu May 13 12:12:41 2021 +0800

    [IOTDB-1378] MetadataIndexTree constructs error when existing more than one chunks in vector
---
 .../java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index 9fe7453..fb43fe4 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -262,7 +262,8 @@ public class TsFileIOWriter {
           Path series = new Path(chunkGroupMetadata.getDevice(), chunkMetadata.getMeasurementUid());
           chunkMetadataListMap.computeIfAbsent(series, k -> new ArrayList<>()).add(chunkMetadata);
           idx++;
-          Map<Path, List<IChunkMetadata>> chunkMetadataListMapInVector = new TreeMap<>();
+          Map<Path, List<IChunkMetadata>> chunkMetadataListMapInVector =
+              vectorToPathsMap.computeIfAbsent(series, key -> new TreeMap<>());
 
           // value columns of a vector series
           while (idx < chunkMetadatas.size() && chunkMetadatas.get(idx).isValueColumn()) {
@@ -274,7 +275,6 @@ public class TsFileIOWriter {
                 .add(chunkMetadata);
             idx++;
           }
-          vectorToPathsMap.put(series, chunkMetadataListMapInVector);
         }
       }
     }