This is an automated email from the ASF dual-hosted git repository.
rong 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 91fb32a5c3a Pipe: Added default logic for username / password in tree
sql-dialect pipes & Fixed the NPE for configNode table schema snapshot parsing
need (#15200)
91fb32a5c3a is described below
commit 91fb32a5c3a7776a935baeb484ce43bea4f47c88
Author: Caideyipi <[email protected]>
AuthorDate: Thu Mar 27 10:37:10 2025 +0800
Pipe: Added default logic for username / password in tree sql-dialect pipes
& Fixed the NPE for configNode table schema snapshot parsing need (#15200)
---
.../pipe/extractor/IoTDBConfigRegionExtractor.java | 11 ++++++-----
.../plan/execution/config/TableConfigTaskVisitor.java | 4 ++--
.../plan/execution/config/TreeConfigTaskVisitor.java | 14 ++++++++++++--
.../iotdb/db/queryengine/plan/parser/ASTVisitor.java | 19 +------------------
4 files changed, 21 insertions(+), 27 deletions(-)
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/IoTDBConfigRegionExtractor.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/IoTDBConfigRegionExtractor.java
index ace61b95314..e8ffe69d2d6 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/IoTDBConfigRegionExtractor.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/IoTDBConfigRegionExtractor.java
@@ -183,11 +183,12 @@ public class IoTDBConfigRegionExtractor extends
IoTDBNonDataRegionExtractor {
case SCHEMA:
// Currently do not check tree model mTree
return Objects.nonNull(((PipeConfigRegionSnapshotEvent)
event).getTemplateFile())
- || permissionManager
- .checkUserPrivileges(userName, new PrivilegeUnion(null,
false, true))
- .getStatus()
- .getCode()
- == TSStatusCode.SUCCESS_STATUS.getStatusCode();
+ || Objects.nonNull(userName)
+ && permissionManager
+ .checkUserPrivileges(userName, new
PrivilegeUnion(null, false, true))
+ .getStatus()
+ .getCode()
+ == TSStatusCode.SUCCESS_STATUS.getStatusCode();
default:
return true;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java
index ce986ad8083..8cfcd89d07f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java
@@ -912,7 +912,7 @@ public class TableConfigTaskVisitor extends
AstVisitor<IConfigTask, MPPQueryCont
return new CreatePipeTask(node);
}
- private void checkAndEnrichSourceUserName(
+ public static void checkAndEnrichSourceUserName(
final String pipeName, final Map<String, String> extractorAttributes,
final String userName) {
final PipeParameters extractorParameters = new
PipeParameters(extractorAttributes);
final String pluginName =
@@ -944,7 +944,7 @@ public class TableConfigTaskVisitor extends
AstVisitor<IConfigTask, MPPQueryCont
}
}
- private void checkAndEnrichSinkUserName(
+ public static void checkAndEnrichSinkUserName(
final String pipeName, final Map<String, String> connectorAttributes,
final String userName) {
final PipeParameters connectorParameters = new
PipeParameters(connectorAttributes);
final String pluginName =
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
index c381d31857a..ec849227517 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
@@ -199,6 +199,8 @@ import java.util.List;
import static
org.apache.iotdb.commons.executable.ExecutableManager.getUnTrustedUriErrorMsg;
import static
org.apache.iotdb.commons.executable.ExecutableManager.isUriTrusted;
+import static
org.apache.iotdb.db.queryengine.plan.execution.config.TableConfigTaskVisitor.checkAndEnrichSinkUserName;
+import static
org.apache.iotdb.db.queryengine.plan.execution.config.TableConfigTaskVisitor.checkAndEnrichSourceUserName;
public class TreeConfigTaskVisitor extends StatementVisitor<IConfigTask,
MPPQueryContext> {
@@ -515,8 +517,8 @@ public class TreeConfigTaskVisitor extends
StatementVisitor<IConfigTask, MPPQuer
@Override
public IConfigTask visitCreatePipe(
- CreatePipeStatement createPipeStatement, MPPQueryContext context) {
- for (String ExtractorAttribute :
createPipeStatement.getExtractorAttributes().keySet()) {
+ final CreatePipeStatement createPipeStatement, final MPPQueryContext
context) {
+ for (final String ExtractorAttribute :
createPipeStatement.getExtractorAttributes().keySet()) {
if (ExtractorAttribute.startsWith(SystemConstant.SYSTEM_PREFIX_KEY)) {
throw new SemanticException(
String.format(
@@ -529,6 +531,14 @@ public class TreeConfigTaskVisitor extends
StatementVisitor<IConfigTask, MPPQuer
createPipeStatement
.getExtractorAttributes()
.put(SystemConstant.SQL_DIALECT_KEY,
SystemConstant.SQL_DIALECT_TREE_VALUE);
+ checkAndEnrichSourceUserName(
+ createPipeStatement.getPipeName(),
+ createPipeStatement.getExtractorAttributes(),
+ context.getSession().getUserName());
+ checkAndEnrichSinkUserName(
+ createPipeStatement.getPipeName(),
+ createPipeStatement.getConnectorAttributes(),
+ context.getSession().getUserName());
return new CreatePipeTask(createPipeStatement);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
index 1ece2b8510e..386eb4255d2 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
@@ -3857,27 +3857,10 @@ public class ASTVisitor extends
IoTDBSqlParserBaseVisitor<Statement> {
return new
DropSchemaTemplateStatement(parseIdentifier(ctx.templateName.getText()));
}
- public Map<String, String> parseSyncAttributeClauses(
- IoTDBSqlParser.SyncAttributeClausesContext ctx) {
-
- Map<String, String> attributes = new HashMap<>();
-
- List<IoTDBSqlParser.AttributePairContext> attributePairs =
ctx.attributePair();
- if (ctx.attributePair(0) != null) {
- for (IoTDBSqlParser.AttributePairContext attributePair : attributePairs)
{
- attributes.put(
- parseAttributeKey(attributePair.attributeKey()).toLowerCase(),
- parseAttributeValue(attributePair.attributeValue()).toLowerCase());
- }
- }
-
- return attributes;
- }
-
// PIPE
@Override
- public Statement visitCreatePipe(IoTDBSqlParser.CreatePipeContext ctx) {
+ public Statement visitCreatePipe(final IoTDBSqlParser.CreatePipeContext ctx)
{
final CreatePipeStatement createPipeStatement =
new CreatePipeStatement(StatementType.CREATE_PIPE);