From 6d0375e46d07f386125a3c6e091e605a515df03d Mon Sep 17 00:00:00 2001 From: zixi0825 <649790970@qq.com> Date: Thu, 21 May 2020 16:09:36 +0800 Subject: [PATCH] fix sql task bug #2739 (#2741) * Solve the failure to execute non-query sql * fix sql task bug Co-authored-by: sunchaohe Co-authored-by: qiaozhanwei Co-authored-by: lgcareer <18610854716@163.com> --- .../common/utils/ParameterUtils.java | 15 ++++++++------- .../server/worker/task/sql/SqlTask.java | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java index 270e0c4696..bbc8955588 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java @@ -213,27 +213,28 @@ public class ParameterUtils { return inputString; } + /** - * new - * $[yyyyMMdd] replace scheduler time + * $[yyyyMMdd] replace schedule time * @param text - * @param paramsMap + * @param scheduleTime * @return */ - public static String replaceScheduleTime(String text, Date scheduleTime, Map paramsMap) { - if (paramsMap != null) { + public static String replaceScheduleTime(String text, Date scheduleTime) { + Map paramsMap = new HashMap<>(); //if getScheduleTime null ,is current date if (null == scheduleTime) { scheduleTime = new Date(); } + String dateTime = org.apache.dolphinscheduler.common.utils.DateUtils.format(scheduleTime, Constants.PARAMETER_FORMAT_TIME); Property p = new Property(); p.setValue(dateTime); p.setProp(Constants.PARAMETER_SHECDULE_TIME); paramsMap.put(Constants.PARAMETER_SHECDULE_TIME, p); text = ParameterUtils.convertParameterPlaceholders2(text, convert(paramsMap)); - } - return text; + + return text; } diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java index ccd4bb2214..c62364e18a 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java @@ -179,7 +179,7 @@ public class SqlTask extends AbstractTask { } //new //replace variable TIME with $[YYYYmmddd...] in sql when history run job and batch complement job - sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime(), paramsMap); + sql = ParameterUtils.replaceScheduleTime(sql, taskExecutionContext.getScheduleTime()); // special characters need to be escaped, ${} needs to be escaped String rgex = "['\"]*\\$\\{(.*?)\\}['\"]*"; setSqlParamsMap(sql, rgex, sqlParamsMap, paramsMap);