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

jiangtian 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 5d0935495f5 fix ut (#13145)
5d0935495f5 is described below

commit 5d0935495f5f0da97ac580b1973d1d0f1c64c7bf
Author: shuwenwei <[email protected]>
AuthorDate: Tue Aug 13 14:27:27 2024 +0800

    fix ut (#13145)
---
 .../utils/CompactionTableSchemaCollector.java      |  2 +-
 .../compaction/io/CompactionTsFileWriter.java      | 22 +++++++++++++++++++++-
 .../TableModelFastCompactionPerformerTest.java     |  4 ++--
 ...TableModelReadChunkCompactionPerformerTest.java |  7 +++----
 ...TableModelReadPointCompactionPerformerTest.java |  4 ++--
 5 files changed, 29 insertions(+), 10 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionTableSchemaCollector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionTableSchemaCollector.java
index 762dfb293e0..a16dfa9424a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionTableSchemaCollector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionTableSchemaCollector.java
@@ -92,6 +92,6 @@ public class CompactionTableSchemaCollector {
   }
 
   private static boolean isTreeModel(TableSchema tableSchema) {
-    return tableSchema.getTableName().startsWith("root.");
+    return tableSchema == null;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileWriter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileWriter.java
index c1e7a79cf2b..c80185bd28b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileWriter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionTsFileWriter.java
@@ -26,6 +26,7 @@ import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.constant
 
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.ChunkMetadata;
+import org.apache.tsfile.file.metadata.IDeviceID;
 import org.apache.tsfile.file.metadata.TableSchema;
 import org.apache.tsfile.file.metadata.enums.CompressionType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
@@ -48,6 +49,7 @@ public class CompactionTsFileWriter extends TsFileIOWriter {
 
   private volatile boolean isWritingAligned = false;
   private boolean isEmptyTargetFile = true;
+  private IDeviceID currentDeviceId;
 
   public CompactionTsFileWriter(File file, long maxMetadataSize, 
CompactionType type)
       throws IOException {
@@ -56,7 +58,6 @@ public class CompactionTsFileWriter extends TsFileIOWriter {
     super.out =
         new CompactionTsFileOutput(
             super.out, 
CompactionTaskManager.getInstance().getMergeWriteRateLimiter());
-    setGenerateTableSchema(true);
   }
 
   public void markStartingWritingAligned() {
@@ -120,6 +121,25 @@ public class CompactionTsFileWriter extends TsFileIOWriter 
{
     return size;
   }
 
+  @Override
+  public int startChunkGroup(IDeviceID deviceId) throws IOException {
+    currentDeviceId = deviceId;
+    return super.startChunkGroup(deviceId);
+  }
+
+  @Override
+  public void endChunkGroup() throws IOException {
+    if (currentDeviceId == null || chunkMetadataList.isEmpty()) {
+      return;
+    }
+    String tableName = currentDeviceId.getTableName();
+    TableSchema tableSchema = getSchema().getTableSchemaMap().get(tableName);
+    boolean generateTableSchemaForCurrentChunkGroup = tableSchema != null;
+    setGenerateTableSchema(generateTableSchemaForCurrentChunkGroup);
+    super.endChunkGroup();
+    currentDeviceId = null;
+  }
+
   @Override
   public void endFile() throws IOException {
     long beforeSize = this.getPos();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelFastCompactionPerformerTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelFastCompactionPerformerTest.java
index a718472e80d..9b4092745f6 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelFastCompactionPerformerTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelFastCompactionPerformerTest.java
@@ -211,7 +211,7 @@ public class TableModelFastCompactionPerformerTest extends 
AbstractCompactionTes
         new TsFileSequenceReader(
             
tsFileManager.getTsFileList(true).get(0).getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(3, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 
@@ -250,7 +250,7 @@ public class TableModelFastCompactionPerformerTest extends 
AbstractCompactionTes
         new TsFileSequenceReader(
             
tsFileManager.getTsFileList(true).get(0).getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(2, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadChunkCompactionPerformerTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadChunkCompactionPerformerTest.java
index 9cc62d88aef..6ca6ed62cce 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadChunkCompactionPerformerTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadChunkCompactionPerformerTest.java
@@ -166,8 +166,7 @@ public class TableModelReadChunkCompactionPerformerTest 
extends AbstractCompacti
     try (TsFileSequenceReader reader =
         new 
TsFileSequenceReader(targetResource.getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      TableSchema tableSchema = 
tsFileMetadata.getTableSchemaMap().get("root.testsg");
-      Assert.assertEquals(3, tableSchema.getColumnTypes().size());
+      Assert.assertTrue(tsFileMetadata.getTableSchemaMap().isEmpty());
       Map<IDeviceID, List<TimeseriesMetadata>> allTimeseriesMetadata =
           reader.getAllTimeseriesMetadata(true);
       for (Map.Entry<IDeviceID, List<TimeseriesMetadata>> entry :
@@ -215,7 +214,7 @@ public class TableModelReadChunkCompactionPerformerTest 
extends AbstractCompacti
     try (TsFileSequenceReader reader =
         new 
TsFileSequenceReader(targetResource.getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(2, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 
@@ -323,7 +322,7 @@ public class TableModelReadChunkCompactionPerformerTest 
extends AbstractCompacti
         new TsFileSequenceReader(
             
tsFileManager.getTsFileList(true).get(0).getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(3, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadPointCompactionPerformerTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadPointCompactionPerformerTest.java
index b3430a102d2..a68a8c400a6 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadPointCompactionPerformerTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/TableModelReadPointCompactionPerformerTest.java
@@ -223,7 +223,7 @@ public class TableModelReadPointCompactionPerformerTest 
extends AbstractCompacti
         new TsFileSequenceReader(
             
tsFileManager.getTsFileList(true).get(0).getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(3, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 
@@ -262,7 +262,7 @@ public class TableModelReadPointCompactionPerformerTest 
extends AbstractCompacti
         new TsFileSequenceReader(
             
tsFileManager.getTsFileList(true).get(0).getTsFile().getAbsolutePath())) {
       TsFileMetadata tsFileMetadata = reader.readFileMetadata();
-      Assert.assertEquals(2, tsFileMetadata.getTableSchemaMap().size());
+      Assert.assertEquals(1, tsFileMetadata.getTableSchemaMap().size());
     }
   }
 }

Reply via email to