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

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


The following commit(s) were added to refs/heads/object_type by this push:
     new 95cc48b8ab9 fix serde bug for object type
95cc48b8ab9 is described below

commit 95cc48b8ab90277d9e41b8f4c84ffd1c93c93d2e
Author: JackieTien97 <[email protected]>
AuthorDate: Mon Jul 7 18:42:50 2025 +0800

    fix serde bug for object type
---
 .../plan/relational/type/InternalTypeManager.java           |  4 ++++
 .../db/queryengine/plan/relational/utils/TypeUtil.java      | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java
index 51506ed9fa0..dbb7a771ce8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java
@@ -35,6 +35,7 @@ import static 
org.apache.tsfile.read.common.type.DoubleType.DOUBLE;
 import static org.apache.tsfile.read.common.type.FloatType.FLOAT;
 import static org.apache.tsfile.read.common.type.IntType.INT32;
 import static org.apache.tsfile.read.common.type.LongType.INT64;
+import static org.apache.tsfile.read.common.type.ObjectType.OBJECT;
 import static org.apache.tsfile.read.common.type.StringType.STRING;
 import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP;
 import static org.apache.tsfile.read.common.type.UnknownType.UNKNOWN;
@@ -52,6 +53,7 @@ public class InternalTypeManager implements TypeManager {
     types.put(new 
TypeSignature(TypeEnum.TEXT.name().toLowerCase(Locale.ENGLISH)), TEXT);
     types.put(new 
TypeSignature(TypeEnum.STRING.name().toLowerCase(Locale.ENGLISH)), STRING);
     types.put(new 
TypeSignature(TypeEnum.BLOB.name().toLowerCase(Locale.ENGLISH)), BLOB);
+    types.put(new 
TypeSignature(TypeEnum.OBJECT.name().toLowerCase(Locale.ENGLISH)), OBJECT);
     types.put(new 
TypeSignature(TypeEnum.DATE.name().toLowerCase(Locale.ENGLISH)), DATE);
     types.put(new 
TypeSignature(TypeEnum.TIMESTAMP.name().toLowerCase(Locale.ENGLISH)), 
TIMESTAMP);
     types.put(new 
TypeSignature(TypeEnum.UNKNOWN.name().toLowerCase(Locale.ENGLISH)), UNKNOWN);
@@ -136,6 +138,8 @@ public class InternalTypeManager implements TypeManager {
         return BLOB;
       case STRING:
         return STRING;
+      case OBJECT:
+        return OBJECT;
       default:
         throw new IllegalArgumentException();
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java
index 0cc31381072..fe951d1e4ce 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java
@@ -28,6 +28,7 @@ import org.apache.tsfile.read.common.type.BinaryType;
 import org.apache.tsfile.read.common.type.BlobType;
 import org.apache.tsfile.read.common.type.DoubleType;
 import org.apache.tsfile.read.common.type.FloatType;
+import org.apache.tsfile.read.common.type.ObjectType;
 import org.apache.tsfile.read.common.type.RowType;
 import org.apache.tsfile.read.common.type.StringType;
 import org.apache.tsfile.read.common.type.TimestampType;
@@ -116,6 +117,8 @@ public class TypeUtil {
         return TimestampType.TIMESTAMP;
       case DATE:
         return DATE;
+      case OBJECT:
+        return ObjectType.OBJECT;
       case ROW:
         return RowType.anonymous(subTypes);
       default:
@@ -123,7 +126,6 @@ public class TypeUtil {
     }
   }
 
-  // TODO move these methods into each Type to avoid branch miss
   public static boolean isFlatVariableWidth(Type type) {
     switch (type.getTypeEnum()) {
       case BOOLEAN:
@@ -137,6 +139,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         return true;
       default:
         throw new UnsupportedOperationException();
@@ -160,6 +163,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         return 16;
       default:
         throw new UnsupportedOperationException();
@@ -179,6 +183,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         return column.isNull(position) ? 0 : 
column.getBinary(position).getLength();
       default:
         throw new UnsupportedOperationException();
@@ -198,6 +203,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         int result = 0;
         for (int i = 0; i < position.length; i++) {
           if (!column.isNull(i)) {
@@ -237,6 +243,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         int length = bytesToInt(fixedChunk, fixedOffset);
         byte[] result = new byte[length];
         if (length <= 12) {
@@ -282,6 +289,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         byte[] value = column.getBinary(position).getValues();
         intToBytes(value.length, fixedChunk, fixedOffset);
         if (value.length <= 12) {
@@ -320,6 +328,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         int leftLength = bytesToInt(fixedChunk, fixedOffset);
         byte[] leftValue = new byte[leftLength];
         byte[] rightValue = column.getBinary(position).getValues();
@@ -414,6 +423,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         int length = bytesToInt(fixedChunk, fixedOffset);
         byte[] values = new byte[length];
 
@@ -490,6 +500,7 @@ public class TypeUtil {
       case TEXT:
       case STRING:
       case BLOB:
+      case OBJECT:
         return XxHash64.hash(column.getBinary(position).getValues());
       default:
         throw new UnsupportedOperationException();

Reply via email to