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

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


The following commit(s) were added to refs/heads/master by this push:
     new 11755a10f5f [IOTDB-6023] Pipe: LoadTsFilePieceNode error when loading 
tsfile with empty value chunks (#10281)
11755a10f5f is described below

commit 11755a10f5f237ba5dbdc4c4562222117e06dc9c
Author: yschengzi <[email protected]>
AuthorDate: Fri Jun 23 20:49:39 2023 +0800

    [IOTDB-6023] Pipe: LoadTsFilePieceNode error when loading tsfile with empty 
value chunks (#10281)
---
 .../main/java/org/apache/iotdb/db/engine/load/TsFileSplitter.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/load/TsFileSplitter.java 
b/server/src/main/java/org/apache/iotdb/db/engine/load/TsFileSplitter.java
index e3010f0eeb2..919c372c631 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/load/TsFileSplitter.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/load/TsFileSplitter.java
@@ -229,7 +229,7 @@ public class TsFileSplitter {
             chunkMetadata = offset2ChunkMetadata.get(chunkOffset - Byte.BYTES);
             header = reader.readChunkHeader(marker);
             if (header.getDataSize() == 0) {
-              handleEmptyValueChunk(header, pageIndex2ChunkData);
+              handleEmptyValueChunk(header, pageIndex2ChunkData, 
chunkMetadata);
               break;
             }
 
@@ -421,12 +421,16 @@ public class TsFileSplitter {
   }
 
   private void handleEmptyValueChunk(
-      ChunkHeader header, Map<Integer, List<AlignedChunkData>> 
pageIndex2ChunkData) {
+      ChunkHeader header,
+      Map<Integer, List<AlignedChunkData>> pageIndex2ChunkData,
+      IChunkMetadata chunkMetadata)
+      throws IOException {
     Set<ChunkData> allChunkData = new HashSet<>();
     for (Map.Entry<Integer, List<AlignedChunkData>> entry : 
pageIndex2ChunkData.entrySet()) {
       for (AlignedChunkData alignedChunkData : entry.getValue()) {
         if (!allChunkData.contains(alignedChunkData)) {
           alignedChunkData.addValueChunk(header);
+          alignedChunkData.writeEntireChunk(ByteBuffer.allocate(0), 
chunkMetadata);
           allChunkData.add(alignedChunkData);
         }
       }

Reply via email to