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

jiangtian pushed a commit to branch tsFile_v4
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/tsFile_v4 by this push:
     new 08a6d4b3 fix device order
08a6d4b3 is described below

commit 08a6d4b31eed1619100dbcea36d9ef47e6c92d3b
Author: jt2594838 <[email protected]>
AuthorDate: Fri Apr 12 18:58:45 2024 +0800

    fix device order
---
 .../java/org/apache/tsfile/file/metadata/TsFileMetadata.java |  3 ++-
 .../java/org/apache/tsfile/write/writer/TsFileIOWriter.java  |  2 +-
 .../org/apache/tsfile/exception/TsFileExceptionTest.java     |  2 +-
 .../org/apache/tsfile/file/metadata/utils/TestHelper.java    |  8 ++++++--
 .../java/org/apache/tsfile/file/metadata/utils/Utils.java    |  8 ++++----
 .../test/java/org/apache/tsfile/read/GetAllDevicesTest.java  | 12 ++++++++++--
 .../src/test/java/org/apache/tsfile/utils/FileGenerator.java |  4 +++-
 .../src/test/java/org/apache/tsfile/utils/RecordUtils.java   |  4 +++-
 8 files changed, 30 insertions(+), 13 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java 
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
index f0dfcf53..dd339f03 100644
--- a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
+++ b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
@@ -19,6 +19,7 @@
 
 package org.apache.tsfile.file.metadata;
 
+import java.util.TreeMap;
 import org.apache.tsfile.compatibility.DeserializeConfig;
 import org.apache.tsfile.utils.BloomFilter;
 import org.apache.tsfile.utils.ReadWriteForEncodingUtils;
@@ -55,7 +56,7 @@ public class TsFileMetadata {
 
     // metadataIndex
     int tableIndexNodeNum = buffer.getInt();
-    Map<String, MetadataIndexNode> tableIndexNodeMap = new HashMap<>();
+    Map<String, MetadataIndexNode> tableIndexNodeMap = new TreeMap<>();
     for (int i = 0; i < tableIndexNodeNum; i++) {
       String tableName = ReadWriteIOUtils.readString(buffer);
       MetadataIndexNode metadataIndexNode =
diff --git 
a/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java 
b/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
index 01f03004..8f107369 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
@@ -456,7 +456,7 @@ public class TsFileIOWriter implements AutoCloseable {
         splitDeviceByTable(deviceMetadataIndexMap);
 
     // build an index root for each table
-    Map<String, MetadataIndexNode> tableNodesMap = new HashMap<>();
+    Map<String, MetadataIndexNode> tableNodesMap = new TreeMap<>();
     for (Entry<String, Map<IDeviceID, MetadataIndexNode>> entry : 
tableDeviceNodesMap.entrySet()) {
       tableNodesMap.put(entry.getKey(), 
checkAndBuildLevelIndex(entry.getValue(), out));
     }
diff --git 
a/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java 
b/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
index 2132d999..74bfbc24 100644
--- a/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
@@ -140,7 +140,7 @@ public class TsFileExceptionTest {
   @Test
   public void testNoMeasurementException() {
     NoMeasurementException e = new NoMeasurementException(MOCK);
-    assertEquals(MOCK, e.getMessage());
+    assertEquals("No measurement for mock", e.getMessage());
   }
 
   @Test
diff --git 
a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java 
b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
index db43abcb..8506f2fd 100644
--- a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
+++ b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
@@ -21,6 +21,9 @@ package org.apache.tsfile.file.metadata.utils;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.header.PageHeader;
 import org.apache.tsfile.file.header.PageHeaderTest;
+import org.apache.tsfile.file.metadata.DeviceMetadataIndexEntry;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
 import org.apache.tsfile.file.metadata.MeasurementMetadataIndexEntry;
 import org.apache.tsfile.file.metadata.MetadataIndexNode;
 import org.apache.tsfile.file.metadata.TimeseriesMetadata;
@@ -47,9 +50,10 @@ public class TestHelper {
   }
 
   private static MetadataIndexNode generateMetaDataIndex() {
-    MetadataIndexNode metaDataIndex = new 
MetadataIndexNode(MetadataIndexNodeType.LEAF_MEASUREMENT);
+    MetadataIndexNode metaDataIndex = new 
MetadataIndexNode(MetadataIndexNodeType.LEAF_DEVICE);
     for (int i = 0; i < 5; i++) {
-      metaDataIndex.addEntry(new MeasurementMetadataIndexEntry("d" + i, (long) 
i * 5));
+      metaDataIndex.addEntry(new 
DeviceMetadataIndexEntry(Factory.DEFAULT_FACTORY.create("d" + i),
+          (long) i * 5));
     }
     return metaDataIndex;
   }
diff --git 
a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java 
b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
index 60761199..81fdd718 100644
--- a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
+++ b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
@@ -51,11 +51,11 @@ public class Utils {
   public static boolean isFileMetaDataEqual(TsFileMetadata metadata1, 
TsFileMetadata metadata2) {
     if (Utils.isTwoObjectsNotNULL(metadata1, metadata2, "File MetaData")) {
       if (Utils.isTwoObjectsNotNULL(
-          metadata1.getTableMetadataIndexNodeMap().get(""),
-          metadata2.getTableMetadataIndexNodeMap().get(""),
+          
metadata1.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME),
+          
metadata2.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME),
           "Metadata " + "Index")) {
-        MetadataIndexNode metaDataIndex1 = 
metadata1.getTableMetadataIndexNodeMap().get("");
-        MetadataIndexNode metaDataIndex2 = 
metadata2.getTableMetadataIndexNodeMap().get("");
+        MetadataIndexNode metaDataIndex1 = 
metadata1.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME);
+        MetadataIndexNode metaDataIndex2 = 
metadata2.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME);
         return metaDataIndex1.getChildren().size() == 
metaDataIndex2.getChildren().size();
       }
     }
diff --git a/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java 
b/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
index 3b7811f3..f979fcdc 100644
--- a/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.tsfile.read;
 
+import java.util.ArrayList;
 import org.apache.tsfile.common.conf.TSFileConfig;
 import org.apache.tsfile.common.conf.TSFileDescriptor;
 import org.apache.tsfile.file.metadata.IDeviceID;
@@ -72,14 +73,21 @@ public class GetAllDevicesTest {
 
   public void testGetAllDevices(int deviceNum, int measurementNum) throws 
IOException {
     FileGenerator.generateFile(10000, deviceNum, measurementNum);
+
+
     try (TsFileSequenceReader fileReader = new 
TsFileSequenceReader(FILE_PATH)) {
+      List<IDeviceID> sortedDeviceIds = new ArrayList<>();
+      for (int i = 0; i < deviceNum; i++) {
+        sortedDeviceIds.add(IDeviceID.Factory.DEFAULT_FACTORY.create(
+            "d" + FileGenerator.generateIndexString(i, deviceNum)));
+      }
+      sortedDeviceIds.sort(null);
 
       List<IDeviceID> devices = fileReader.getAllDevices();
       Assert.assertEquals(deviceNum, devices.size());
       for (int i = 0; i < deviceNum; i++) {
         Assert.assertEquals(
-            IDeviceID.Factory.DEFAULT_FACTORY.create(
-                "d" + FileGenerator.generateIndexString(i, deviceNum)),
+            sortedDeviceIds.get(i),
             devices.get(i));
       }
 
diff --git a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java 
b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
index 37a9a37c..aacd775a 100755
--- a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
@@ -22,6 +22,8 @@ import org.apache.tsfile.common.conf.TSFileConfig;
 import org.apache.tsfile.common.conf.TSFileDescriptor;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.exception.write.WriteProcessException;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.write.TsFileWriter;
@@ -302,7 +304,7 @@ public class FileGenerator {
     for (int i = 0; i < deviceNum; i++) {
       for (int j = 0; j < measurementNum; j++) {
         schema.registerTimeseries(
-            new Path("d" + generateIndexString(i, deviceNum)),
+            Factory.DEFAULT_FACTORY.create("d" + generateIndexString(i, 
deviceNum)),
             new MeasurementSchema(
                 "s" + generateIndexString(j, measurementNum),
                 TSDataType.INT32,
diff --git a/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java 
b/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
index 53fc4ffe..fb0d04b5 100644
--- a/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
@@ -20,6 +20,8 @@ package org.apache.tsfile.utils;
 
 import org.apache.tsfile.common.constant.JsonFormatConstant;
 import org.apache.tsfile.enums.TSDataType;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
 import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.write.record.TSRecord;
 import org.apache.tsfile.write.record.datapoint.BooleanDataPoint;
@@ -68,7 +70,7 @@ public class RecordUtils {
     for (int i = 2; i < items.length - 1; i += 2) {
       // get measurementId and value
       measurementId = items[i].trim();
-      MeasurementGroup measurementGroup = schema.getSeriesSchema(new 
Path(deviceId));
+      MeasurementGroup measurementGroup = 
schema.getSeriesSchema(Factory.DEFAULT_FACTORY.create(deviceId));
       IMeasurementSchema measurementSchema =
           measurementGroup == null
               ? null

Reply via email to