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

caogaofei pushed a commit to branch new-table-model-debug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit b999dc2cc67713f42e1e408ac2aeb01bed0a1a5d
Author: Beyyes <[email protected]>
AuthorDate: Wed May 22 20:15:35 2024 +0800

    perfect serialize method of Cast, GenericDataTYpe, QualifiedName
---
 .../apache/iotdb/db/relational/sql/tree/Cast.java  |  4 +-
 .../db/relational/sql/tree/GenericDataType.java    |  8 +--
 .../db/relational/sql/tree/QualifiedName.java      | 78 +++++++++++++---------
 3 files changed, 52 insertions(+), 38 deletions(-)

diff --git 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/Cast.java
 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/Cast.java
index b671f5928f0..8a28001bc01 100644
--- 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/Cast.java
+++ 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/Cast.java
@@ -145,7 +145,7 @@ public final class Cast extends Expression {
   @Override
   public void serialize(DataOutputStream stream) throws IOException {
     Expression.serialize(this.expression, stream);
-    // ReadWriteIOUtils.write(this.type, stream);
+    Expression.serialize(this.type, stream);
     ReadWriteIOUtils.write(this.safe, stream);
     ReadWriteIOUtils.write(this.typeOnly, stream);
   }
@@ -153,7 +153,7 @@ public final class Cast extends Expression {
   public Cast(ByteBuffer byteBuffer) {
     super(null);
     this.expression = Expression.deserialize(byteBuffer);
-    this.type = null;
+    this.type = (DataType) Expression.deserialize(byteBuffer);
     this.safe = ReadWriteIOUtils.readBool(byteBuffer);
     this.typeOnly = ReadWriteIOUtils.readBool(byteBuffer);
   }
diff --git 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/GenericDataType.java
 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/GenericDataType.java
index 5dfbcb8f568..5e4c419b576 100644
--- 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/GenericDataType.java
+++ 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/GenericDataType.java
@@ -19,8 +19,6 @@
 
 package org.apache.iotdb.db.relational.sql.tree;
 
-import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-
 import com.google.common.collect.ImmutableList;
 
 import javax.annotation.Nonnull;
@@ -28,6 +26,7 @@ import javax.annotation.Nonnull;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
@@ -100,12 +99,13 @@ public final class GenericDataType extends DataType {
   @Override
   public void serialize(DataOutputStream stream) throws IOException {
     Expression.serialize(name, stream);
-    ReadWriteIOUtils.write(arguments.size(), stream);
+    // ReadWriteIOUtils.write(arguments.size(), stream);
   }
 
   public GenericDataType(ByteBuffer byteBuffer) {
     super(null);
     this.name = (Identifier) Expression.deserialize(byteBuffer);
-    this.arguments = null;
+    // arguments are always empty now
+    this.arguments = Collections.emptyList();
   }
 }
diff --git 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/QualifiedName.java
 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/QualifiedName.java
index c154f82343e..71971e0c4e5 100644
--- 
a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/QualifiedName.java
+++ 
b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/tree/QualifiedName.java
@@ -68,6 +68,19 @@ public class QualifiedName {
     return new QualifiedName(ImmutableList.copyOf(originalParts));
   }
 
+  public QualifiedName(
+      List<Identifier> originalParts,
+      List<String> parts,
+      String name,
+      @Nullable QualifiedName prefix,
+      String suffix) {
+    this.originalParts = ImmutableList.copyOf(originalParts);
+    this.parts = ImmutableList.copyOf(parts);
+    this.name = requireNonNull(name, "name is null");
+    this.prefix = prefix;
+    this.suffix = suffix;
+  }
+
   private QualifiedName(List<Identifier> originalParts) {
     this.originalParts = originalParts;
     // Iteration instead of stream for performance reasons
@@ -149,45 +162,46 @@ public class QualifiedName {
       Expression.serialize(identifier, stream);
     }
 
-    //    ReadWriteIOUtils.write(parts.size(), stream);
-    //    for (String part : parts) {
-    //     ReadWriteIOUtils.write(part, stream);
-    //    }
-    //
-    //    ReadWriteIOUtils.write(name, stream);
-    //
-    //    if (prefix != null) {
-    //      ReadWriteIOUtils.write((byte)1, stream);
-    //      prefix.serialize(stream);
-    //    } else {
-    //      ReadWriteIOUtils.write((byte)0, stream);
-    //    }
-    //
-    //    ReadWriteIOUtils.write(suffix, stream);
+    ReadWriteIOUtils.write(parts.size(), stream);
+    for (String part : parts) {
+      ReadWriteIOUtils.write(part, stream);
+    }
+
+    ReadWriteIOUtils.write(name, stream);
+
+    if (prefix != null) {
+      ReadWriteIOUtils.write((byte) 1, stream);
+      prefix.serialize(stream);
+    } else {
+      ReadWriteIOUtils.write((byte) 0, stream);
+    }
+
+    ReadWriteIOUtils.write(suffix, stream);
   }
 
   public static QualifiedName deserialize(ByteBuffer byteBuffer) {
-    int size = ReadWriteIOUtils.read(byteBuffer);
+    int size = ReadWriteIOUtils.readInt(byteBuffer);
     List<Identifier> originalParts = new ArrayList<>(size);
     while (size-- > 0) {
       originalParts.add((Identifier) Expression.deserialize(byteBuffer));
     }
 
-    //    String name = ReadWriteIOUtils.readString(byteBuffer);
-    //
-    //    size = ReadWriteIOUtils.read(byteBuffer);
-    //    List<String> parts = new ArrayList<>(size);
-    //    while (size -- > 0) {
-    //      parts.add(ReadWriteIOUtils.readString(byteBuffer));
-    //    }
-    //
-    //    byte hasPrefixByte = ReadWriteIOUtils.readByte(byteBuffer);
-    //    if (hasPrefixByte == 1) {
-    //      QualifiedName prefix = QualifiedName.deserialize(byteBuffer);
-    //    }
-    //
-    //    String suffix = ReadWriteIOUtils.readString(byteBuffer);
-
-    return new QualifiedName(originalParts);
+    size = ReadWriteIOUtils.readInt(byteBuffer);
+    List<String> parts = new ArrayList<>(size);
+    while (size-- > 0) {
+      parts.add(ReadWriteIOUtils.readString(byteBuffer));
+    }
+
+    String name = ReadWriteIOUtils.readString(byteBuffer);
+
+    byte hasPrefixByte = ReadWriteIOUtils.readByte(byteBuffer);
+    QualifiedName prefix = null;
+    if (hasPrefixByte == 1) {
+      prefix = QualifiedName.deserialize(byteBuffer);
+    }
+
+    String suffix = ReadWriteIOUtils.readString(byteBuffer);
+
+    return new QualifiedName(originalParts, parts, name, prefix, suffix);
   }
 }

Reply via email to