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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 12e53089 create multiple data type in utils used in UT
12e53089 is described below

commit 12e5308983b4cfaf3ddde2bea40744fe66ca7141
Author: 周沛辰 <[email protected]>
AuthorDate: Wed Apr 24 15:42:58 2024 +0800

    create multiple data type in utils used in UT
---
 .../apache/tsfile/utils/TsFileGeneratorUtils.java  | 62 ++++++++++++++++++++--
 1 file changed, 57 insertions(+), 5 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java 
b/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
index d029dd63..71633a99 100644
--- a/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
+++ b/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
@@ -29,7 +29,11 @@ import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.write.TsFileWriter;
 import org.apache.tsfile.write.record.TSRecord;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.record.datapoint.BooleanDataPoint;
 import org.apache.tsfile.write.record.datapoint.DataPoint;
+import org.apache.tsfile.write.record.datapoint.DoubleDataPoint;
+import org.apache.tsfile.write.record.datapoint.FloatDataPoint;
+import org.apache.tsfile.write.record.datapoint.IntDataPoint;
 import org.apache.tsfile.write.record.datapoint.LongDataPoint;
 import org.apache.tsfile.write.record.datapoint.StringDataPoint;
 import org.apache.tsfile.write.schema.IMeasurementSchema;
@@ -48,6 +52,8 @@ public class TsFileGeneratorUtils {
   public static final String testStorageGroup = "root.testsg";
   public static int alignDeviceOffset = 10000;
 
+  public static boolean useMultiType = false;
+
   public static void writeWithTsRecord(
       TsFileWriter tsFileWriter,
       String deviceId,
@@ -61,7 +67,31 @@ public class TsFileGeneratorUtils {
       // construct TsRecord
       TSRecord tsRecord = new TSRecord(time, deviceId);
       for (IMeasurementSchema schema : schemas) {
-        DataPoint dPoint = new LongDataPoint(schema.getMeasurementId(), 
startValue);
+        DataPoint dPoint;
+        switch (schema.getType()) {
+          case INT64:
+            dPoint = new LongDataPoint(schema.getMeasurementId(), startValue);
+            break;
+          case INT32:
+            dPoint = new IntDataPoint(schema.getMeasurementId(), (int) 
startValue);
+            break;
+          case DOUBLE:
+            dPoint = new DoubleDataPoint(schema.getMeasurementId(), (double) 
startValue);
+            break;
+          case FLOAT:
+            dPoint = new FloatDataPoint(schema.getMeasurementId(), (float) 
startValue);
+            break;
+          case BOOLEAN:
+            dPoint = new BooleanDataPoint(schema.getMeasurementId(), true);
+            break;
+          case TEXT:
+          default:
+            dPoint =
+                new StringDataPoint(
+                    schema.getMeasurementId(),
+                    new Binary(String.valueOf(startValue), 
TSFileConfig.STRING_CHARSET));
+            break;
+        }
         tsRecord.addTuple(dPoint);
       }
       // write
@@ -196,7 +226,7 @@ public class TsFileGeneratorUtils {
       int deviceNum,
       int measurementNum,
       int pointNum,
-      int startTime,
+      long startTime,
       int startValue,
       int chunkGroupSize,
       int pageSize)
@@ -214,7 +244,7 @@ public class TsFileGeneratorUtils {
       List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
       for (int i = 0; i < measurementNum; i++) {
         alignedMeasurementSchemas.add(
-            new MeasurementSchema("s" + i, TSDataType.INT64, 
TSEncoding.PLAIN));
+            new MeasurementSchema("s" + i, getDataType(i), TSEncoding.PLAIN));
       }
       for (int i = alignDeviceOffset; i < alignDeviceOffset + deviceNum; i++) {
         tsFileWriter.registerAlignedTimeseries(
@@ -241,7 +271,7 @@ public class TsFileGeneratorUtils {
       int deviceNum,
       int measurementNum,
       int pointNum,
-      int startTime,
+      long startTime,
       int startValue,
       int chunkGroupSize,
       int pageSize)
@@ -258,7 +288,7 @@ public class TsFileGeneratorUtils {
       // register nonAlign timeseries
       List<MeasurementSchema> measurementSchemas = new ArrayList<>();
       for (int i = 0; i < measurementNum; i++) {
-        measurementSchemas.add(new MeasurementSchema("s" + i, 
TSDataType.INT64, TSEncoding.PLAIN));
+        measurementSchemas.add(new MeasurementSchema("s" + i, getDataType(i), 
TSEncoding.PLAIN));
       }
       for (int i = 0; i < deviceNum; i++) {
         tsFileWriter.registerTimeseries(
@@ -390,6 +420,28 @@ public class TsFileGeneratorUtils {
     }
   }
 
+  public static TSDataType getDataType(int num) {
+    if (!useMultiType) {
+      return TSDataType.INT64;
+    }
+    switch (num % 6) {
+      case 0:
+        return TSDataType.BOOLEAN;
+      case 1:
+        return TSDataType.INT32;
+      case 2:
+        return TSDataType.INT64;
+      case 3:
+        return TSDataType.FLOAT;
+      case 4:
+        return TSDataType.DOUBLE;
+      case 5:
+        return TSDataType.TEXT;
+      default:
+        throw new IllegalArgumentException("Invalid input: " + num % 6);
+    }
+  }
+
   public static String getTsFilePath(String fileParentPath, long 
tsFileVersion) {
     String fileName =
         System.currentTimeMillis()

Reply via email to