You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sh...@apache.org on 2025/07/17 07:33:06 UTC

(iotdb) 01/01: Fix the handling of empty value chunk when load splitting time partitions

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

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

commit b71c10d97fd0bec1c4af0acc13e2fecafc2d5a7e
Author: shuwenwei <s1...@gmail.com>
AuthorDate: Thu Jul 17 15:32:44 2025 +0800

    Fix the handling of empty value chunk when load splitting time partitions
---
 .../apache/iotdb/db/storageengine/load/splitter/TsFileSplitter.java   | 3 +++
 .../compaction/BatchedCompactionWithTsFileSplitterTest.java           | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/splitter/TsFileSplitter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/splitter/TsFileSplitter.java
index bf534bffdeb..d194919c18d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/splitter/TsFileSplitter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/splitter/TsFileSplitter.java
@@ -521,6 +521,9 @@ public class TsFileSplitter {
           alignedChunkData.addValueChunk(header);
           if (!isTimeChunkNeedDecode) {
             alignedChunkData.writeEntireChunk(ByteBuffer.allocate(0), chunkMetadata);
+          } else {
+            alignedChunkData.writeEntirePage(
+                new PageHeader(0, 0, chunkMetadata.getStatistics()), ByteBuffer.allocate(0));
           }
           allChunkData.add(alignedChunkData);
         }
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/BatchedCompactionWithTsFileSplitterTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/BatchedCompactionWithTsFileSplitterTest.java
index edfad9ff251..c619aff66ae 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/BatchedCompactionWithTsFileSplitterTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/BatchedCompactionWithTsFileSplitterTest.java
@@ -71,7 +71,7 @@ public class BatchedCompactionWithTsFileSplitterTest extends AbstractCompactionT
     super.setUp();
     originMaxConcurrentAlignedSeriesInCompaction =
         IoTDBDescriptor.getInstance().getConfig().getCompactionMaxAlignedSeriesNumInOneBatch();
-    IoTDBDescriptor.getInstance().getConfig().setCompactionMaxAlignedSeriesNumInOneBatch(2);
+    IoTDBDescriptor.getInstance().getConfig().setCompactionMaxAlignedSeriesNumInOneBatch(6);
   }
 
   @After
@@ -222,7 +222,7 @@ public class BatchedCompactionWithTsFileSplitterTest extends AbstractCompactionT
             },
             TSEncoding.PLAIN,
             CompressionType.LZ4,
-            Arrays.asList(false, false, false, false, false),
+            Arrays.asList(false, false, false, true, false),
             true);
     seqResources.add(seqResource2);