This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 2d0e1d357c3 [To dev/1.3] Fixed the NPE caused by view permission check
(#15876)
2d0e1d357c3 is described below
commit 2d0e1d357c3976a4d901f645408311bc6e7b945d
Author: Caideyipi <[email protected]>
AuthorDate: Wed Jul 9 11:36:38 2025 +0800
[To dev/1.3] Fixed the NPE caused by view permission check (#15876)
---
.../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 e35e766d4a4..340c798ed8b 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.checkFullPathListPermission(
- userName, getTargetPathList(),
PrivilegeType.WRITE_SCHEMA.ordinal()),
- getTargetPathList(),
+ userName, paths, PrivilegeType.WRITE_SCHEMA.ordinal()),
+ paths,
PrivilegeType.WRITE_SCHEMA);
}
return status;