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

jackietien 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 7bbd83d4042 [IOTDB-6326] Normalize the table headers of Auth related 
statement
7bbd83d4042 is described below

commit 7bbd83d4042185ae010dbc0e8654f0a9f52343f8
Author: Jackie Tien <[email protected]>
AuthorDate: Thu May 9 10:59:59 2024 +0800

    [IOTDB-6326] Normalize the table headers of Auth related statement
---
 .../org/apache/iotdb/db/it/IoTDBRestServiceIT.java |  5 ++--
 .../db/it/IoTDBSyntaxConventionIdentifierIT.java   |  4 ++--
 .../iotdb/db/it/auth/IoTDBClusterAuthorityIT.java  |  4 ++--
 .../pipe/it/manual/IoTDBPipeMetaHistoricalIT.java  | 28 ++++++++++++++++++----
 .../iotdb/confignode/persistence/AuthorInfo.java   | 10 ++++----
 .../org/apache/iotdb/db/auth/AuthorityChecker.java | 22 ++++++++---------
 .../common/header/ColumnHeaderConstant.java        | 12 ++++++++++
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |  4 ----
 8 files changed, 58 insertions(+), 31 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
index 6eab7d51f68..0776855f397 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.it;
 
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.it.env.EnvFactory;
 import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
 import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -1385,7 +1386,7 @@ public class IoTDBRestServiceIT {
     List<Object> columnNames =
         new ArrayList<Object>() {
           {
-            add("user");
+            add(ColumnHeaderConstant.USER);
           }
         };
     List<Object> values1 =
@@ -2036,7 +2037,7 @@ public class IoTDBRestServiceIT {
     List<Object> columnNames =
         new ArrayList<Object>() {
           {
-            add("user");
+            add(ColumnHeaderConstant.USER);
           }
         };
     List<Object> values1 =
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
index 3e9743bc8c8..247255cdfb6 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
@@ -615,7 +615,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
       Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
       try (ResultSet resultSet = statement.executeQuery("list user")) {
         while (resultSet.next()) {
-          String user = resultSet.getString("user").toLowerCase();
+          String user = 
resultSet.getString(ColumnHeaderConstant.USER).toLowerCase();
           Assert.assertTrue(expectedResult.contains(user));
           expectedResult.remove(user);
         }
@@ -678,7 +678,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
       Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
       try (ResultSet resultSet = statement.executeQuery("list role")) {
         while (resultSet.next()) {
-          String role = resultSet.getString("role").toLowerCase();
+          String role = 
resultSet.getString(ColumnHeaderConstant.ROLE).toLowerCase();
           Assert.assertTrue(expectedResult.contains(role));
           expectedResult.remove(role);
         }
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
index 9514474881b..ef9c147a742 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
@@ -22,7 +22,6 @@ package org.apache.iotdb.db.it.auth;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.auth.entity.PrivilegeType;
 import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.AuthUtils;
@@ -30,6 +29,7 @@ import 
org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.db.queryengine.plan.statement.AuthorType;
 import org.apache.iotdb.it.env.EnvFactory;
 import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -366,7 +366,7 @@ public class IoTDBClusterAuthorityIT {
       authorizerResp = client.queryPermission(authorizerReq);
       status = authorizerResp.getStatus();
       assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
status.getCode());
-      assertEquals(IoTDBConstant.COLUMN_PRIVILEGE, authorizerResp.getTag());
+      assertEquals(ColumnHeaderConstant.PRIVILEGES, authorizerResp.getTag());
       assertEquals("tempuser0", 
authorizerResp.getPermissionInfo().getUserInfo().getUsername());
       assertEquals(
           new ArrayList<>(), 
authorizerResp.getPermissionInfo().getUserInfo().getPrivilegeList());
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
index e15a8f6b708..c917acbde1a 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
@@ -24,6 +24,7 @@ import 
org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
 import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
 import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.db.it.utils.TestUtils;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.it.env.MultiEnvFactory;
 import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
 import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -136,8 +137,12 @@ public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualManualIT {
           TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
client.startPipe("testPipe").getCode());
 
       TestUtils.assertDataAlwaysOnEnv(
-          receiverEnv, "list user", "user,", Collections.singleton("root,"));
-      TestUtils.assertDataAlwaysOnEnv(receiverEnv, "list role", "role,", 
Collections.emptySet());
+          receiverEnv,
+          "list user",
+          ColumnHeaderConstant.USER + ",",
+          Collections.singleton("root,"));
+      TestUtils.assertDataAlwaysOnEnv(
+          receiverEnv, "list role", ColumnHeaderConstant.ROLE + ",", 
Collections.emptySet());
 
       TestUtils.assertDataEventuallyOnEnv(
           receiverEnv,
@@ -216,11 +221,21 @@ public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualManualIT {
           TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
client.startPipe("testPipe").getCode());
 
       TestUtils.assertDataEventuallyOnEnv(
-          receiverEnv, "list user of role `admin`", "user,", 
Collections.singleton("thulab,"));
+          receiverEnv,
+          "list user of role `admin`",
+          ColumnHeaderConstant.USER + ",",
+          Collections.singleton("thulab,"));
       TestUtils.assertDataEventuallyOnEnv(
           receiverEnv,
           "list privileges of role `admin`",
-          "ROLE,PATH,PRIVILEGES,GRANT OPTION,",
+          ColumnHeaderConstant.ROLE
+              + ","
+              + ColumnHeaderConstant.PATH
+              + ","
+              + ColumnHeaderConstant.PRIVILEGES
+              + ","
+              + ColumnHeaderConstant.GRANT_OPTION
+              + ",",
           new HashSet<>(
               Arrays.asList("admin,root.**,READ_DATA,false,", 
"admin,root.**,READ_SCHEMA,false,")));
 
@@ -237,7 +252,10 @@ public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualManualIT {
       }
 
       TestUtils.assertDataEventuallyOnEnv(
-          receiverEnv, "list role", "role,", new 
HashSet<>(Arrays.asList("admin,", "test,")));
+          receiverEnv,
+          "list role",
+          ColumnHeaderConstant.ROLE + ",",
+          new HashSet<>(Arrays.asList("admin,", "test,")));
     }
   }
 }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
index f0be01f2b91..e993e40fbc2 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
@@ -30,7 +30,6 @@ import org.apache.iotdb.commons.auth.entity.Role;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.conf.CommonConfig;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.path.PathPatternTree;
 import org.apache.iotdb.commons.snapshot.SnapshotProcessor;
@@ -45,6 +44,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TPathPrivilege;
 import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
 import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
 import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 
@@ -337,7 +337,7 @@ public class AuthorInfo implements SnapshotProcessor {
         }
       }
     }
-    result.setTag(IoTDBConstant.COLUMN_USER);
+    result.setTag(ColumnHeaderConstant.USER);
     result.setMemberInfo(userList);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
@@ -359,7 +359,7 @@ public class AuthorInfo implements SnapshotProcessor {
       }
       roleList.addAll(user.getRoleList());
     }
-    result.setTag(IoTDBConstant.COLUMN_ROLE);
+    result.setTag(ColumnHeaderConstant.ROLE);
     result.setMemberInfo(roleList);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
@@ -393,7 +393,7 @@ public class AuthorInfo implements SnapshotProcessor {
     roleInfo.put(role.getName(), roleResp);
     resp.setRoleInfo(roleInfo);
     resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
-    result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+    result.setTag(ColumnHeaderConstant.PRIVILEGES);
     result.setPermissionInfoResp(resp);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     result.setMemberInfo(permissionInfo);
@@ -410,7 +410,7 @@ public class AuthorInfo implements SnapshotProcessor {
     }
     TPermissionInfoResp resp = getUserPermissionInfo(plan.getUserName());
     resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
-    result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+    result.setTag(ColumnHeaderConstant.PRIVILEGES);
     result.setPermissionInfoResp(resp);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index d85606d3def..4dc29bd42f7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -23,7 +23,6 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.entity.PrivilegeType;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.path.PathPatternTree;
 import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics;
@@ -33,6 +32,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
 import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
 import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.header.ColumnHeader;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
 import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult;
 import org.apache.iotdb.db.queryengine.plan.statement.Statement;
@@ -51,6 +51,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
+
+import static 
org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant.LIST_USER_PRIVILEGES_Column_HEADERS;
 
 // Authority checker is SingleTon working at datanode.
 // It checks permission in local. DCL statement will send to confignode.
@@ -206,8 +209,8 @@ public class AuthorityChecker {
       TAuthorizerResp authResp, SettableFuture<ConfigTaskResult> future) {
     List<TSDataType> types = new ArrayList<>();
     boolean listRoleUser =
-        authResp.tag.equals(IoTDBConstant.COLUMN_ROLE)
-            || authResp.tag.equals(IoTDBConstant.COLUMN_USER);
+        authResp.tag.equals(ColumnHeaderConstant.ROLE)
+            || authResp.tag.equals(ColumnHeaderConstant.USER);
 
     List<ColumnHeader> headerList = new ArrayList<>();
     TsBlockBuilder builder;
@@ -221,14 +224,11 @@ public class AuthorityChecker {
         builder.declarePosition();
       }
     } else {
-      headerList.add(new ColumnHeader("ROLE", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("PATH", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("PRIVILEGES", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("GRANT OPTION", TSDataType.BOOLEAN));
-      types.add(TSDataType.BOOLEAN);
+      headerList = LIST_USER_PRIVILEGES_Column_HEADERS;
+      types =
+          LIST_USER_PRIVILEGES_Column_HEADERS.stream()
+              .map(ColumnHeader::getColumnType)
+              .collect(Collectors.toList());
       builder = new TsBlockBuilder(types);
       TUserResp user = authResp.getPermissionInfo().getUserInfo();
       if (user != null) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
index ea2fad8805f..cb76c13aa0b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
@@ -68,6 +68,7 @@ public class ColumnHeaderConstant {
   public static final String VERSION = "Version";
   public static final String BUILD_INFO = "BuildInfo";
   public static final String PATHS = "Paths";
+  public static final String PATH = "Path";
   public static final String VARIABLE = "Variable";
 
   // column names for count statement
@@ -199,6 +200,10 @@ public class ColumnHeaderConstant {
   // column names for show current timestamp
   public static final String CURRENT_TIMESTAMP = "CurrentTimestamp";
 
+  public static final String PRIVILEGES = "Privileges";
+
+  public static final String GRANT_OPTION = "GrantOption";
+
   public static final List<ColumnHeader> lastQueryColumnHeaders =
       ImmutableList.of(
           new ColumnHeader(TIMESERIES, TSDataType.TEXT),
@@ -488,4 +493,11 @@ public class ColumnHeaderConstant {
 
   public static final List<ColumnHeader> showCurrentTimestampColumnHeaders =
       ImmutableList.of(new ColumnHeader(CURRENT_TIMESTAMP, TSDataType.INT64));
+
+  public static final List<ColumnHeader> LIST_USER_PRIVILEGES_Column_HEADERS =
+      ImmutableList.of(
+          new ColumnHeader(ROLE, TSDataType.TEXT),
+          new ColumnHeader(PATH, TSDataType.TEXT),
+          new ColumnHeader(PRIVILEGES, TSDataType.TEXT),
+          new ColumnHeader(GRANT_OPTION, TSDataType.BOOLEAN));
 }
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 88df1615a58..22164360a47 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -170,10 +170,6 @@ public class IoTDBConstant {
   public static final String QUERY_ID = "queryId";
   public static final String STATEMENT = "statement";
 
-  public static final String COLUMN_ROLE = "role";
-  public static final String COLUMN_USER = "user";
-  public static final String COLUMN_PRIVILEGE = "privilege";
-
   public static final String COLUMN_DATABASE = "database";
   public static final String COLUMN_TTL = "ttl";
 

Reply via email to