Skip to content

Commit 8cd99aa

Browse files
authored
[Fix-4292] fix jar sqlstatement split (#4439)
1 parent 9b8bb2c commit 8cd99aa

5 files changed

Lines changed: 886 additions & 17 deletions

File tree

dinky-admin/src/main/java/org/dinky/controller/TaskController.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package org.dinky.controller;
2121

22+
import org.dinky.assertion.Asserts;
2223
import org.dinky.config.Dialect;
2324
import org.dinky.data.annotations.CheckTaskApproval;
2425
import org.dinky.data.annotations.CheckTaskOwner;
@@ -51,9 +52,7 @@
5152
import org.dinky.trans.ExecuteJarParseStrategyUtil;
5253
import org.dinky.utils.SqlUtil;
5354

54-
import java.util.Arrays;
5555
import java.util.List;
56-
import java.util.stream.Collectors;
5756

5857
import org.springframework.validation.annotation.Validated;
5958
import org.springframework.web.bind.annotation.GetMapping;
@@ -320,19 +319,20 @@ public Result<FlinkJarSqlConvertVO> flinkJarSqlConvertForm(@RequestBody TaskDTO
320319
}
321320
Integer lastExecuteJarSqlStatementIndex = null;
322321
for (int i = 0; i < statements.length; i++) {
323-
if (ExecuteJarParseStrategyUtil.match(statements[i])) {
322+
if (ExecuteJarParseStrategyUtil.find(statements[i])) {
324323
lastExecuteJarSqlStatementIndex = i;
325324
}
326325
}
327326
if (lastExecuteJarSqlStatementIndex == null) {
327+
flinkJarSqlConvertVO.setInitSqlStatement(sqlStatement);
328328
return Result.succeed(flinkJarSqlConvertVO);
329329
}
330330
String lastSqlStatement = statements[lastExecuteJarSqlStatementIndex];
331331
JarSubmitParam info = JarSubmitParam.getInfo(lastSqlStatement);
332332
flinkJarSqlConvertVO.setJarSubmitParam(info);
333-
String sql = Arrays.stream(ArrayUtil.remove(statements, lastExecuteJarSqlStatementIndex))
334-
.map(x -> x + ";")
335-
.collect(Collectors.joining("\n"));
333+
// English: Only clear the 'Execute Jar' part of the original sqlStatement, while retaining all other
334+
// statements.
335+
String sql = ExecuteJarParseStrategyUtil.removeExecuteJarStatement(sqlStatement);
336336
flinkJarSqlConvertVO.setInitSqlStatement(sql);
337337
return Result.succeed(flinkJarSqlConvertVO);
338338
}
@@ -341,6 +341,11 @@ public Result<FlinkJarSqlConvertVO> flinkJarSqlConvertForm(@RequestBody TaskDTO
341341
@ApiOperation("FlinkJar FormConvertSql")
342342
public Result<String> flinkJarFormConvertSql(@RequestBody FlinkJarSqlConvertVO dto) {
343343
JarSubmitParam jarSubmitParam = dto.getJarSubmitParam();
344+
String initSqlStatement = dto.getInitSqlStatement();
345+
// remove Other Execute Jar
346+
if (Asserts.isNotNullString(initSqlStatement)) {
347+
initSqlStatement = ExecuteJarParseStrategyUtil.removeExecuteJarStatement(initSqlStatement);
348+
}
344349
Dict objectMap = Dict.create()
345350
.set("uri", Opt.ofNullable(jarSubmitParam.getUri()).orElse(""))
346351
.set(
@@ -355,6 +360,6 @@ public Result<String> flinkJarFormConvertSql(@RequestBody FlinkJarSqlConvertVO d
355360
.orElse(false)
356361
.toString());
357362
String executeJarSql = ENGINE.getTemplate("executeJar.sql").render(objectMap);
358-
return Result.succeed(Opt.ofNullable(dto.getInitSqlStatement()).orElse("") + "\n" + executeJarSql, "");
363+
return Result.succeed(Opt.ofNullable(initSqlStatement).orElse("") + "\n" + executeJarSql, "");
359364
}
360365
}

0 commit comments

Comments
 (0)