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()