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 a10e2132d80 Fixed the NPE caused by view permission check
a10e2132d80 is described below

commit a10e2132d808f6aaa549014cb3d8b3221e7c1b08
Author: Caideyipi <[email protected]>
AuthorDate: Wed Jul 9 11:35:27 2025 +0800

    Fixed the NPE caused by view permission check
---
 .../statement/metadata/view/CreateLogicalViewStatement.java | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java
index 98a2053674e..70d5ade4c24 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java
@@ -21,6 +21,7 @@ package 
org.apache.iotdb.db.queryengine.plan.statement.metadata.view;
 
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.auth.entity.PrivilegeType;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression;
 import org.apache.iotdb.db.auth.AuthorityChecker;
@@ -44,6 +45,7 @@ import org.apache.tsfile.utils.Pair;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 /** CREATE LOGICAL VIEW statement. */
 public class CreateLogicalViewStatement extends Statement {
@@ -99,11 +101,18 @@ public class CreateLogicalViewStatement extends Statement {
               PrivilegeType.READ_SCHEMA);
     }
 
+    final List<PartialPath> paths =
+        Objects.nonNull(getTargetPathList())
+            ? getTargetPathList()
+            : Collections.singletonList(
+                batchGenerationItem
+                    .getIntoDevice()
+                    .concatNode(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD));
     if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
       return AuthorityChecker.getTSStatus(
           AuthorityChecker.checkFullPathOrPatternListPermission(
-              userName, getTargetPathList(), PrivilegeType.WRITE_SCHEMA),
-          getTargetPathList(),
+              userName, paths, PrivilegeType.WRITE_SCHEMA),
+          paths,
           PrivilegeType.WRITE_SCHEMA);
     }
     return status;

Reply via email to