From 339881a48eed611ae3159a582e2d50ee9a042d2f Mon Sep 17 00:00:00 2001 From: Molin Wang Date: Mon, 24 Apr 2023 16:45:01 +0800 Subject: [PATCH] [Fix-13814] [Built-in variable] shell task transfer param (#13974) --- .../dolphinscheduler/spi/task/paramparser/ParamUtils.java | 6 ++++-- .../apache/dolphinscheduler/plugin/task/sql/SqlTask.java | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/paramparser/ParamUtils.java b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/paramparser/ParamUtils.java index a96fd29883..dc869c9cfd 100644 --- a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/paramparser/ParamUtils.java +++ b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/paramparser/ParamUtils.java @@ -69,7 +69,7 @@ public class ParamUtils { Map varParams = parameters.getVarPoolMap(); - if (MapUtils.isEmpty(globalParams) && MapUtils.isEmpty(localParams)) { + if (MapUtils.isEmpty(globalParams) && MapUtils.isEmpty(localParams) && MapUtils.isEmpty(varParams)) { return null; } // if it is a complement, @@ -98,7 +98,9 @@ public class ParamUtils { convertedParams = localParams; } if (varParams != null) { - varParams.putAll(globalParams); + if (globalParams != null) { + varParams.putAll(globalParams); + } globalParams = varParams; for (Map.Entry entry : varParams.entrySet()) { convertedParams.put(entry.getKey(), entry.getValue()); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java index a260130423..2ae7769af9 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java @@ -436,6 +436,8 @@ public class SqlTask extends AbstractTaskExecutor { Map sqlParamsMap = new HashMap<>(); StringBuilder sqlBuilder = new StringBuilder(); + //replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job + sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime()); // combining local and global parameters Map paramsMap = ParamUtils.convert(taskExecutionContext, getParameters()); @@ -452,9 +454,6 @@ public class SqlTask extends AbstractTaskExecutor { sqlParameters.setTitle(title); } - //new - //replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job - sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime()); // special characters need to be escaped, ${} needs to be escaped setSqlParamsMap(sql, rgex, sqlParamsMap, paramsMap,taskExecutionContext.getTaskInstanceId()); //Replace the original value in sql !{...} ,Does not participate in precompilation