Skip to content

Commit ce52582

Browse files
authored
Merge branch 'dev' into improvement-17057-checkIfDAG
2 parents fb3e0ba + 1b28cd6 commit ce52582

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-doris/src/main/java/org/apache/dolphinscheduler/plugin/doris/param/DorisDataSourceProcessor.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.List;
3838
import java.util.Map;
3939

40+
import com.alibaba.druid.sql.parser.SQLParserUtils;
4041
import com.google.auto.service.AutoService;
4142

4243
@AutoService(DataSourceProcessor.class)
@@ -139,6 +140,14 @@ public DataSourceProcessor create() {
139140
return new DorisDataSourceProcessor();
140141
}
141142

143+
@Override
144+
public List<String> splitAndRemoveComment(String sql) {
145+
// Because doris is highly compatible with mysql syntax,
146+
// a mysql-type implementation can be used for comments and statement split.
147+
String cleanSQL = SQLParserUtils.removeComment(sql, com.alibaba.druid.DbType.mysql);
148+
return SQLParserUtils.split(cleanSQL, com.alibaba.druid.DbType.mysql);
149+
}
150+
142151
private String transformOther(Map<String, String> paramMap) {
143152
if (MapUtils.isEmpty(paramMap)) {
144153
return null;

dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-doris/src/test/java/org/apache/dolphinscheduler/plugin/doris/param/DorisDataSourceProcessorTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,15 @@ public void splitAndRemoveComment() {
137137
Assertions.assertEquals("set enable_unique_key_partial_update = false", sqls.get(2));
138138
}
139139

140+
@Test
141+
void testSplitAndRemoveCommentWithComments() {
142+
String sql = "-- This is a comment\r\n" +
143+
"select *, udfTest(p1) from table1 -- This is a comment\r\n;" +
144+
"/*Annotation test*/select * from table2/*Annotation test*/";
145+
List<String> result = dorisDatasourceProcessor.splitAndRemoveComment(sql);
146+
Assertions.assertEquals(2, result.size());
147+
Assertions.assertEquals("select *, udfTest(p1) from table1", result.get(0));
148+
Assertions.assertEquals("select * from table2", result.get(1));
149+
}
150+
140151
}

0 commit comments

Comments
 (0)