You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tsfile.apache.org by ja...@apache.org on 2024/06/27 12:53:35 UTC
(tsfile) branch ty/NewDataType created (now 5ebf1dfc)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a change to branch ty/NewDataType
in repository https://gitbox.apache.org/repos/asf/tsfile.git
at 5ebf1dfc Add new type in Type interface
This branch includes the following new commits:
new 5ebf1dfc Add new type in Type interface
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(tsfile) 01/01: Add new type in Type interface
Posted by ja...@apache.org.
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 <ja...@gmail.com>
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));