This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/NewDataType in repository https://gitbox.apache.org/repos/asf/tsfile.git
commit 5ebf1dfcf6493c24d57d5a46aa85be0418d26d0b Author: JackieTien97 <[email protected]> AuthorDate: Thu Jun 27 20:53:17 2024 +0800 Add new type in Type interface --- .../type/{IntType.java => AbstractIntType.java} | 20 +------ .../type/{LongType.java => AbstractLongType.java} | 20 +------ .../{BinaryType.java => AbstractVarcharType.java} | 20 +------ .../apache/tsfile/read/common/type/BinaryType.java | 40 +------------ .../common/type/{BinaryType.java => BlobType.java} | 15 ++--- .../common/type/{TypeEnum.java => DateType.java} | 25 ++++---- .../apache/tsfile/read/common/type/IntType.java | 69 +--------------------- .../apache/tsfile/read/common/type/LongType.java | 69 +--------------------- .../common/type/{TypeEnum.java => StringType.java} | 25 ++++---- .../type/{TypeEnum.java => TimestampType.java} | 25 ++++---- .../apache/tsfile/read/common/type/TypeEnum.java | 6 +- .../tsfile/read/common/type/TypeFactory.java | 20 +++++-- 12 files changed, 77 insertions(+), 277 deletions(-) diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractIntType.java similarity index 87% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractIntType.java index a48d1983..ca61ca77 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractIntType.java @@ -26,11 +26,7 @@ import org.apache.tsfile.read.common.block.column.IntColumnBuilder; import java.util.Collections; import java.util.List; -public class IntType implements Type { - - public static final IntType INT32 = new IntType(); - - private IntType() {} +public abstract class AbstractIntType implements Type { @Override public int getInt(Column c, int position) { @@ -77,16 +73,6 @@ public class IntType implements Type { return new IntColumnBuilder(null, expectedEntries); } - @Override - public TypeEnum getTypeEnum() { - return TypeEnum.INT32; - } - - @Override - public String getDisplayName() { - return "INT32"; - } - @Override public boolean isComparable() { return true; @@ -101,8 +87,4 @@ public class IntType implements Type { public List<Type> getTypeParameters() { return Collections.emptyList(); } - - public static IntType getInstance() { - return INT32; - } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractLongType.java similarity index 87% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractLongType.java index 679d908d..74392465 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractLongType.java @@ -26,11 +26,7 @@ import org.apache.tsfile.read.common.block.column.LongColumnBuilder; import java.util.Collections; import java.util.List; -public class LongType implements Type { - - public static final LongType INT64 = new LongType(); - - private LongType() {} +public abstract class AbstractLongType implements Type { @Override public int getInt(Column c, int position) { @@ -77,16 +73,6 @@ public class LongType implements Type { return new LongColumnBuilder(null, expectedEntries); } - @Override - public TypeEnum getTypeEnum() { - return TypeEnum.INT64; - } - - @Override - public String getDisplayName() { - return "INT64"; - } - @Override public boolean isComparable() { return true; @@ -101,8 +87,4 @@ public class LongType implements Type { public List<Type> getTypeParameters() { return Collections.emptyList(); } - - public static LongType getInstance() { - return INT64; - } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractVarcharType.java similarity index 83% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractVarcharType.java index e3619e42..981da8b6 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/AbstractVarcharType.java @@ -27,11 +27,7 @@ import org.apache.tsfile.utils.Binary; import java.util.Collections; import java.util.List; -public class BinaryType implements Type { - public static final BinaryType TEXT = new BinaryType(); - - private BinaryType() {} - +public abstract class AbstractVarcharType implements Type { @Override public Binary getBinary(Column c, int position) { return c.getBinary(position); @@ -47,16 +43,6 @@ public class BinaryType implements Type { return new BinaryColumnBuilder(null, expectedEntries); } - @Override - public TypeEnum getTypeEnum() { - return TypeEnum.TEXT; - } - - @Override - public String getDisplayName() { - return "TEXT"; - } - @Override public boolean isComparable() { return true; @@ -71,8 +57,4 @@ public class BinaryType implements Type { public List<Type> getTypeParameters() { return Collections.emptyList(); } - - public static BinaryType getInstance() { - return TEXT; - } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java index e3619e42..68c87499 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java @@ -19,34 +19,11 @@ package org.apache.tsfile.read.common.type; -import org.apache.tsfile.block.column.Column; -import org.apache.tsfile.block.column.ColumnBuilder; -import org.apache.tsfile.read.common.block.column.BinaryColumnBuilder; -import org.apache.tsfile.utils.Binary; - -import java.util.Collections; -import java.util.List; - -public class BinaryType implements Type { +public class BinaryType extends AbstractVarcharType { public static final BinaryType TEXT = new BinaryType(); private BinaryType() {} - @Override - public Binary getBinary(Column c, int position) { - return c.getBinary(position); - } - - @Override - public void writeBinary(ColumnBuilder builder, Binary value) { - builder.writeBinary(value); - } - - @Override - public ColumnBuilder createColumnBuilder(int expectedEntries) { - return new BinaryColumnBuilder(null, expectedEntries); - } - @Override public TypeEnum getTypeEnum() { return TypeEnum.TEXT; @@ -57,21 +34,6 @@ public class BinaryType implements Type { return "TEXT"; } - @Override - public boolean isComparable() { - return true; - } - - @Override - public boolean isOrderable() { - return true; - } - - @Override - public List<Type> getTypeParameters() { - return Collections.emptyList(); - } - public static BinaryType getInstance() { return TEXT; } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BlobType.java similarity index 88% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BlobType.java index e3619e42..c7f94250 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BinaryType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/BlobType.java @@ -27,10 +27,11 @@ import org.apache.tsfile.utils.Binary; import java.util.Collections; import java.util.List; -public class BinaryType implements Type { - public static final BinaryType TEXT = new BinaryType(); +public class BlobType implements Type { - private BinaryType() {} + public static final BlobType BLOB = new BlobType(); + + private BlobType() {} @Override public Binary getBinary(Column c, int position) { @@ -49,12 +50,12 @@ public class BinaryType implements Type { @Override public TypeEnum getTypeEnum() { - return TypeEnum.TEXT; + return TypeEnum.BLOB; } @Override public String getDisplayName() { - return "TEXT"; + return "BLOB"; } @Override @@ -72,7 +73,7 @@ public class BinaryType implements Type { return Collections.emptyList(); } - public static BinaryType getInstance() { - return TEXT; + public static BlobType getInstance() { + return BLOB; } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/DateType.java similarity index 72% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/DateType.java index 1524a681..88d17e24 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/DateType.java @@ -19,20 +19,23 @@ package org.apache.tsfile.read.common.type; -public enum TypeEnum { - INT32, +public class DateType extends AbstractIntType { - INT64, + public static final DateType DATE = new DateType(); - FLOAT, + private DateType() {} - DOUBLE, + @Override + public TypeEnum getTypeEnum() { + return TypeEnum.DATE; + } - BOOLEAN, + @Override + public String getDisplayName() { + return "DATE"; + } - TEXT, - - ROW, - - UNKNOWN + public static DateType getInstance() { + return DATE; + } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java index a48d1983..e4d36c2a 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/IntType.java @@ -19,64 +19,12 @@ package org.apache.tsfile.read.common.type; -import org.apache.tsfile.block.column.Column; -import org.apache.tsfile.block.column.ColumnBuilder; -import org.apache.tsfile.read.common.block.column.IntColumnBuilder; - -import java.util.Collections; -import java.util.List; - -public class IntType implements Type { +public class IntType extends AbstractIntType { public static final IntType INT32 = new IntType(); private IntType() {} - @Override - public int getInt(Column c, int position) { - return c.getInt(position); - } - - @Override - public long getLong(Column c, int position) { - return c.getInt(position); - } - - @Override - public float getFloat(Column c, int position) { - return c.getInt(position); - } - - @Override - public double getDouble(Column c, int position) { - return c.getInt(position); - } - - @Override - public void writeInt(ColumnBuilder builder, int value) { - builder.writeInt(value); - } - - @Override - public void writeLong(ColumnBuilder builder, long value) { - builder.writeInt((int) value); - } - - @Override - public void writeFloat(ColumnBuilder builder, float value) { - builder.writeInt((int) value); - } - - @Override - public void writeDouble(ColumnBuilder builder, double value) { - builder.writeInt((int) value); - } - - @Override - public ColumnBuilder createColumnBuilder(int expectedEntries) { - return new IntColumnBuilder(null, expectedEntries); - } - @Override public TypeEnum getTypeEnum() { return TypeEnum.INT32; @@ -87,21 +35,6 @@ public class IntType implements Type { return "INT32"; } - @Override - public boolean isComparable() { - return true; - } - - @Override - public boolean isOrderable() { - return true; - } - - @Override - public List<Type> getTypeParameters() { - return Collections.emptyList(); - } - public static IntType getInstance() { return INT32; } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java index 679d908d..a1ed2a1c 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/LongType.java @@ -19,64 +19,12 @@ package org.apache.tsfile.read.common.type; -import org.apache.tsfile.block.column.Column; -import org.apache.tsfile.block.column.ColumnBuilder; -import org.apache.tsfile.read.common.block.column.LongColumnBuilder; - -import java.util.Collections; -import java.util.List; - -public class LongType implements Type { +public class LongType extends AbstractLongType { public static final LongType INT64 = new LongType(); private LongType() {} - @Override - public int getInt(Column c, int position) { - return (int) c.getLong(position); - } - - @Override - public long getLong(Column c, int position) { - return c.getLong(position); - } - - @Override - public float getFloat(Column c, int position) { - return c.getLong(position); - } - - @Override - public double getDouble(Column c, int position) { - return c.getLong(position); - } - - @Override - public void writeInt(ColumnBuilder builder, int value) { - builder.writeLong(value); - } - - @Override - public void writeLong(ColumnBuilder builder, long value) { - builder.writeLong(value); - } - - @Override - public void writeFloat(ColumnBuilder builder, float value) { - builder.writeLong((long) value); - } - - @Override - public void writeDouble(ColumnBuilder builder, double value) { - builder.writeLong((long) value); - } - - @Override - public ColumnBuilder createColumnBuilder(int expectedEntries) { - return new LongColumnBuilder(null, expectedEntries); - } - @Override public TypeEnum getTypeEnum() { return TypeEnum.INT64; @@ -87,21 +35,6 @@ public class LongType implements Type { return "INT64"; } - @Override - public boolean isComparable() { - return true; - } - - @Override - public boolean isOrderable() { - return true; - } - - @Override - public List<Type> getTypeParameters() { - return Collections.emptyList(); - } - public static LongType getInstance() { return INT64; } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/StringType.java similarity index 70% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/StringType.java index 1524a681..725ae9e3 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/StringType.java @@ -19,20 +19,23 @@ package org.apache.tsfile.read.common.type; -public enum TypeEnum { - INT32, +public class StringType extends AbstractVarcharType { - INT64, + public static final StringType STRING = new StringType(); - FLOAT, + private StringType() {} - DOUBLE, + @Override + public TypeEnum getTypeEnum() { + return TypeEnum.STRING; + } - BOOLEAN, + @Override + public String getDisplayName() { + return "STRING"; + } - TEXT, - - ROW, - - UNKNOWN + public static StringType getInstance() { + return STRING; + } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TimestampType.java similarity index 69% copy from java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java copy to java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TimestampType.java index 1524a681..c4e5e843 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TimestampType.java @@ -19,20 +19,23 @@ package org.apache.tsfile.read.common.type; -public enum TypeEnum { - INT32, +public class TimestampType extends AbstractLongType { - INT64, + public static final TimestampType TIMESTAMP = new TimestampType(); - FLOAT, + private TimestampType() {} - DOUBLE, + @Override + public TypeEnum getTypeEnum() { + return TypeEnum.TIMESTAMP; + } - BOOLEAN, + @Override + public String getDisplayName() { + return "TIMESTAMP"; + } - TEXT, - - ROW, - - UNKNOWN + public static TimestampType getInstance() { + return TIMESTAMP; + } } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java index 1524a681..184a64af 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeEnum.java @@ -34,5 +34,9 @@ public enum TypeEnum { ROW, - UNKNOWN + UNKNOWN, + TIMESTAMP, + DATE, + BLOB, + STRING } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeFactory.java b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeFactory.java index 81c8a015..41474542 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeFactory.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/type/TypeFactory.java @@ -29,12 +29,14 @@ public class TypeFactory { public static Type getType(TSDataType tsDataType) { switch (tsDataType) { - case INT32: case DATE: + return DateType.getInstance(); + case INT32: return IntType.getInstance(); case INT64: - case TIMESTAMP: return LongType.getInstance(); + case TIMESTAMP: + return TimestampType.getInstance(); case FLOAT: return FloatType.getInstance(); case DOUBLE: @@ -42,9 +44,11 @@ public class TypeFactory { case BOOLEAN: return BooleanType.getInstance(); case TEXT: - case BLOB: - case STRING: return BinaryType.getInstance(); + case STRING: + return StringType.getInstance(); + case BLOB: + return BlobType.getInstance(); default: throw new UnsupportedOperationException( String.format("Invalid TSDataType for TypeFactory: %s", tsDataType)); @@ -67,6 +71,14 @@ public class TypeFactory { return BinaryType.getInstance(); case UNKNOWN: return UnknownType.getInstance(); + case DATE: + return DateType.getInstance(); + case TIMESTAMP: + return TimestampType.getInstance(); + case BLOB: + return BlobType.getInstance(); + case STRING: + return StringType.getInstance(); default: throw new UnsupportedOperationException( String.format("Invalid TypeEnum for TypeFactory: %s", typeEnum));
