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;