You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ch...@apache.org on 2022/04/09 12:54:27 UTC

[iotdb] branch master updated: user SerializeDeserializeUtil in confignode/AuthorPlan (#5467)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new ce3661f2db user SerializeDeserializeUtil in confignode/AuthorPlan (#5467)
ce3661f2db is described below

commit ce3661f2db9dbfa51072d8f85e02d27fb757ff09
Author: 任宇华 <79...@users.noreply.github.com>
AuthorDate: Sat Apr 9 20:54:22 2022 +0800

    user SerializeDeserializeUtil in confignode/AuthorPlan (#5467)
    
    Co-authored-by: renyuhua <ry...@163.com>
---
 .../iotdb/confignode/physical/sys/AuthorPlan.java  | 63 +++++++++-------------
 .../plan/node/metedata/write/AuthorNode.java       |  3 +-
 2 files changed, 26 insertions(+), 40 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/physical/sys/AuthorPlan.java b/confignode/src/main/java/org/apache/iotdb/confignode/physical/sys/AuthorPlan.java
index 32ac83dc42..df4bf57e4f 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/physical/sys/AuthorPlan.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/physical/sys/AuthorPlan.java
@@ -20,9 +20,11 @@ package org.apache.iotdb.confignode.physical.sys;
 
 import org.apache.iotdb.confignode.physical.PhysicalPlan;
 import org.apache.iotdb.confignode.physical.PhysicalPlanType;
+import org.apache.iotdb.confignode.util.SerializeDeserializeUtil;
 import org.apache.iotdb.db.auth.AuthException;
 
 import java.nio.ByteBuffer;
+import java.util.HashSet;
 import java.util.Set;
 
 public class AuthorPlan extends PhysicalPlan {
@@ -128,57 +130,40 @@ public class AuthorPlan extends PhysicalPlan {
 
   @Override
   protected void serializeImpl(ByteBuffer buffer) {
-    buffer.putInt(getPlanTypeOrdinal(authorType));
-    buffer.putInt(userName.length());
-    buffer.put(userName.getBytes());
-    buffer.putInt(roleName.length());
-    buffer.put(roleName.getBytes());
-    buffer.putInt(password.length());
-    buffer.put(password.getBytes());
-    buffer.putInt(newPassword.length());
-    buffer.put(newPassword.getBytes());
-    if (permissions == null && permissions.size() == 0) {
-      buffer.put("false".getBytes());
+    SerializeDeserializeUtil.write(getPlanTypeOrdinal(authorType), buffer);
+    SerializeDeserializeUtil.write(userName, buffer);
+    SerializeDeserializeUtil.write(roleName, buffer);
+    SerializeDeserializeUtil.write(password, buffer);
+    SerializeDeserializeUtil.write(newPassword, buffer);
+    if (permissions == null) {
+      buffer.put((byte) 0);
     } else {
-      buffer.put("true".getBytes());
+      buffer.put((byte) 1);
       buffer.putInt(permissions.size());
-      for (Integer permission : permissions) {
+      for (int permission : permissions) {
         buffer.putInt(permission);
       }
     }
-    if (nodeName == null && nodeName.equals("")) {
-      buffer.put("false".getBytes());
-    } else {
-      buffer.put("true".getBytes());
-      buffer.putInt(nodeName.length());
-      buffer.put(nodeName.getBytes());
-    }
+    SerializeDeserializeUtil.write(nodeName, buffer);
   }
 
   @Override
   protected void deserializeImpl(ByteBuffer buffer) {
-    userName = getAuthorInfo(buffer);
-    roleName = getAuthorInfo(buffer);
-    password = getAuthorInfo(buffer);
-    newPassword = getAuthorInfo(buffer);
-    String permissionIsNull = getAuthorInfo(buffer);
-    if ("true".equals(permissionIsNull)) {
-      int permissionSize = buffer.getInt();
-      for (int i = 0; i < permissionSize; i++) {
+    userName = SerializeDeserializeUtil.readString(buffer);
+    roleName = SerializeDeserializeUtil.readString(buffer);
+    password = SerializeDeserializeUtil.readString(buffer);
+    newPassword = SerializeDeserializeUtil.readString(buffer);
+    byte hasPermissions = buffer.get();
+    if (hasPermissions == (byte) 0) {
+      this.permissions = null;
+    } else {
+      int permissionsSize = buffer.getInt();
+      this.permissions = new HashSet<>();
+      for (int i = 0; i < permissionsSize; i++) {
         permissions.add(buffer.getInt());
       }
     }
-    String nodeNameIsNull = getAuthorInfo(buffer);
-    if ("true".equals(nodeNameIsNull)) {
-      nodeName = getAuthorInfo(buffer);
-    }
-  }
-
-  private String getAuthorInfo(ByteBuffer buffer) {
-    int infoSize = buffer.getInt();
-    byte[] byteInfo = new byte[infoSize];
-    buffer.get(byteInfo, 0, infoSize);
-    return new String(byteInfo, 0, infoSize);
+    nodeName = SerializeDeserializeUtil.readString(buffer);
   }
 
   private int getPlanTypeOrdinal(PhysicalPlanType physicalPlanType) {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/AuthorNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/AuthorNode.java
index ea2c5b64d9..6ab7447804 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/AuthorNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/sql/planner/plan/node/metedata/write/AuthorNode.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.sql.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.qp.logical.sys.AuthorOperator;
+import org.apache.iotdb.tsfile.exception.NotImplementedException;
 
 import java.nio.ByteBuffer;
 import java.util.HashSet;
@@ -126,7 +127,7 @@ public class AuthorNode extends PlanNode {
 
   @Override
   public PlanNode clone() {
-    return null;
+    throw new NotImplementedException("Clone of AuthorNode is not implemented");
   }
 
   @Override