This is an automated email from the ASF dual-hosted git repository.
jiangtian 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 a6581623 primitive type compatible (#437)
a6581623 is described below
commit a65816238884687fc4a8e7ec262df3b114e2194a
Author: jintao zhu <[email protected]>
AuthorDate: Tue Mar 11 11:34:46 2025 +0800
primitive type compatible (#437)
* TsPrimitiveType Compatible get function
* encoding follow data type
---
.../org/apache/tsfile/utils/TsPrimitiveType.java | 25 ++++++++++++++++++++++
.../java/org/apache/tsfile/read/common/Chunk.java | 22 +++++++++----------
2 files changed, 36 insertions(+), 11 deletions(-)
diff --git
a/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
b/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
index 226862ff..c3356fc5 100644
--- a/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
+++ b/java/common/src/main/java/org/apache/tsfile/utils/TsPrimitiveType.java
@@ -263,6 +263,21 @@ public abstract class TsPrimitiveType implements
Serializable {
return value;
}
+ @Override
+ public double getDouble() {
+ return (double) value;
+ }
+
+ @Override
+ public long getLong() {
+ return (long) value;
+ }
+
+ @Override
+ public float getFloat() {
+ return (float) value;
+ }
+
@Override
public void setInt(int val) {
this.value = val;
@@ -335,6 +350,11 @@ public abstract class TsPrimitiveType implements
Serializable {
return value;
}
+ @Override
+ public double getDouble() {
+ return (double) value;
+ }
+
@Override
public void setLong(long val) {
this.value = val;
@@ -407,6 +427,11 @@ public abstract class TsPrimitiveType implements
Serializable {
return value;
}
+ @Override
+ public double getDouble() {
+ return (double) value;
+ }
+
@Override
public void setFloat(float val) {
this.value = val;
diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
index 9cffa9d0..50d54df6 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
@@ -19,11 +19,13 @@
package org.apache.tsfile.read.common;
+import org.apache.tsfile.common.conf.TSFileDescriptor;
import org.apache.tsfile.encrypt.EncryptParameter;
import org.apache.tsfile.encrypt.EncryptUtils;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.MetaMarker;
import org.apache.tsfile.file.header.ChunkHeader;
+import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.file.metadata.statistics.Statistics;
import org.apache.tsfile.read.TimeValuePair;
import org.apache.tsfile.read.reader.IPageReader;
@@ -217,19 +219,18 @@ public class Chunk {
if (newType == null || newType == chunkHeader.getDataType()) {
return this;
}
+ TSEncoding encoding =
+
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getValueEncoder(newType));
IMeasurementSchema schema =
new MeasurementSchema(
- chunkHeader.getMeasurementID(),
- newType,
- chunkHeader.getEncodingType(),
- chunkHeader.getCompressionType());
+ chunkHeader.getMeasurementID(), newType, encoding,
chunkHeader.getCompressionType());
ValueChunkWriter chunkWriter =
new ValueChunkWriter(
chunkHeader.getMeasurementID(),
chunkHeader.getCompressionType(),
newType,
- chunkHeader.getEncodingType(),
+ encoding,
schema.getValueEncoder(),
encryptParam);
List<Chunk> valueChunks = new ArrayList<>();
@@ -302,7 +303,7 @@ public class Chunk {
newChunkData.capacity(),
newType,
chunkHeader.getCompressionType(),
- chunkHeader.getEncodingType());
+ encoding);
chunkData.flip();
timeChunk.chunkData.flip();
return new Chunk(
@@ -317,12 +318,11 @@ public class Chunk {
if (newType == null || newType == chunkHeader.getDataType()) {
return this;
}
+ TSEncoding encoding =
+
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getValueEncoder(newType));
IMeasurementSchema schema =
new MeasurementSchema(
- chunkHeader.getMeasurementID(),
- newType,
- chunkHeader.getEncodingType(),
- chunkHeader.getCompressionType());
+ chunkHeader.getMeasurementID(), newType, encoding,
chunkHeader.getCompressionType());
ChunkWriterImpl chunkWriter = new ChunkWriterImpl(schema, encryptParam);
ChunkReader chunkReader = new ChunkReader(this);
List<IPageReader> pages = chunkReader.loadPageReaderList();
@@ -374,7 +374,7 @@ public class Chunk {
newChunkData.capacity(),
newType,
chunkHeader.getCompressionType(),
- chunkHeader.getEncodingType());
+ encoding);
chunkData.flip();
return new Chunk(
newChunkHeader,