Skip to content

Commit c38da77

Browse files
committed
[fix-33836][core] support POSITION func in SQL.
1 parent afcf1b3 commit c38da77

File tree

2 files changed

+20
-34
lines changed

2 files changed

+20
-34
lines changed

core/src/main/java/com/dtstack/flink/sql/side/JoinNodeDealer.java

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -551,16 +551,13 @@ private void extractJoinField(SqlNode condition, Set<Tuple2<String, String>> joi
551551
if ( AGGREGATE.contains(condition.getKind())
552552
|| AVG_AGG_FUNCTIONS.contains(joinKind)
553553
|| COMPARISON.contains(joinKind)
554-
|| joinKind == OTHER_FUNCTION
555-
|| joinKind == DIVIDE
556-
|| joinKind == CAST
557-
|| joinKind == TRIM
558-
|| joinKind == TIMES
559-
|| joinKind == PLUS
554+
|| FUNCTION.contains(joinKind)
555+
|| COVAR_AVG_AGG_FUNCTIONS.contains(joinKind)
556+
|| BINARY_ARITHMETIC.contains(joinKind)
557+
|| BINARY_COMPARISON.contains(joinKind)
560558
|| joinKind == NOT_IN
561559
|| joinKind == OR
562560
|| joinKind == AND
563-
|| joinKind == MINUS
564561
|| joinKind == TUMBLE
565562
|| joinKind == TUMBLE_START
566563
|| joinKind == TUMBLE_END
@@ -578,7 +575,7 @@ private void extractJoinField(SqlNode condition, Set<Tuple2<String, String>> joi
578575
|| joinKind == TIMESTAMP_DIFF
579576
|| joinKind == LIKE
580577
|| joinKind == COALESCE
581-
|| joinKind == EQUALS ){
578+
){
582579

583580
SqlBasicCall sqlBasicCall = (SqlBasicCall) condition;
584581
for(int i=0; i<sqlBasicCall.getOperands().length; i++){
@@ -632,16 +629,13 @@ private void extractSelectField(SqlNode selectNode,
632629
}else if( AGGREGATE.contains(selectNode.getKind())
633630
|| AVG_AGG_FUNCTIONS.contains(selectNode.getKind())
634631
|| COMPARISON.contains(selectNode.getKind())
635-
|| selectNode.getKind() == OTHER_FUNCTION
636-
|| selectNode.getKind() == DIVIDE
637-
|| selectNode.getKind() == CAST
638-
|| selectNode.getKind() == TRIM
639-
|| selectNode.getKind() == TIMES
640-
|| selectNode.getKind() == PLUS
632+
|| FUNCTION.contains(selectNode.getKind())
633+
|| COVAR_AVG_AGG_FUNCTIONS.contains(selectNode.getKind())
634+
|| BINARY_ARITHMETIC.contains(selectNode.getKind())
635+
|| BINARY_COMPARISON.contains(selectNode.getKind())
641636
|| selectNode.getKind() == NOT_IN
642637
|| selectNode.getKind() == OR
643638
|| selectNode.getKind() == AND
644-
|| selectNode.getKind() == MINUS
645639
|| selectNode.getKind() == TUMBLE
646640
|| selectNode.getKind() == TUMBLE_START
647641
|| selectNode.getKind() == TUMBLE_END
@@ -906,19 +900,16 @@ public SqlBasicCall buildEmptyCondition(){
906900
private SqlIdentifier checkAndReplaceJoinCondition(SqlNode node, Map<String, String> tableMap){
907901

908902
SqlKind joinKind = node.getKind();
909-
if( AGGREGATE.contains(joinKind)
903+
if(AGGREGATE.contains(joinKind)
910904
|| AVG_AGG_FUNCTIONS.contains(joinKind)
911905
|| COMPARISON.contains(joinKind)
912-
|| joinKind == OTHER_FUNCTION
913-
|| joinKind == DIVIDE
914-
|| joinKind == CAST
915-
|| joinKind == TRIM
916-
|| joinKind == TIMES
917-
|| joinKind == PLUS
906+
|| FUNCTION.contains(joinKind)
907+
|| COVAR_AVG_AGG_FUNCTIONS.contains(joinKind)
908+
|| BINARY_ARITHMETIC.contains(joinKind)
909+
|| BINARY_COMPARISON.contains(joinKind)
918910
|| joinKind == NOT_IN
919911
|| joinKind == OR
920912
|| joinKind == AND
921-
|| joinKind == MINUS
922913
|| joinKind == TUMBLE
923914
|| joinKind == TUMBLE_START
924915
|| joinKind == TUMBLE_END
@@ -935,8 +926,7 @@ private SqlIdentifier checkAndReplaceJoinCondition(SqlNode node, Map<String, Str
935926
|| joinKind == TIMESTAMP_ADD
936927
|| joinKind == TIMESTAMP_DIFF
937928
|| joinKind == LIKE
938-
|| joinKind == COALESCE
939-
|| joinKind == EQUALS ){
929+
|| joinKind == COALESCE ){
940930
SqlBasicCall sqlBasicCall = (SqlBasicCall) node;
941931
for(int i=0; i<sqlBasicCall.getOperands().length; i++){
942932
SqlNode sqlNode = sqlBasicCall.getOperands()[i];

core/src/main/java/com/dtstack/flink/sql/util/FieldReplaceUtil.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -243,19 +243,16 @@ public static SqlNode replaceSelectFieldName(SqlNode selectNode,
243243
return createNewIdentify((SqlIdentifier) selectNode, oldTbName, newTbName, mappingField);
244244
}else if(selectNode.getKind() == LITERAL || selectNode.getKind() == LITERAL_CHAIN){//字面含义
245245
return selectNode;
246-
}else if( AGGREGATE.contains(selectNode.getKind())
246+
}else if(AGGREGATE.contains(selectNode.getKind())
247247
|| AVG_AGG_FUNCTIONS.contains(selectNode.getKind())
248248
|| COMPARISON.contains(selectNode.getKind())
249-
|| selectNode.getKind() == OTHER_FUNCTION
250-
|| selectNode.getKind() == DIVIDE
251-
|| selectNode.getKind() == CAST
252-
|| selectNode.getKind() == TRIM
253-
|| selectNode.getKind() == TIMES
254-
|| selectNode.getKind() == PLUS
249+
|| FUNCTION.contains(selectNode.getKind())
250+
|| COVAR_AVG_AGG_FUNCTIONS.contains(selectNode.getKind())
251+
|| BINARY_ARITHMETIC.contains(selectNode.getKind())
252+
|| BINARY_COMPARISON.contains(selectNode.getKind())
255253
|| selectNode.getKind() == NOT_IN
256254
|| selectNode.getKind() == OR
257255
|| selectNode.getKind() == AND
258-
|| selectNode.getKind() == MINUS
259256
|| selectNode.getKind() == TUMBLE
260257
|| selectNode.getKind() == TUMBLE_START
261258
|| selectNode.getKind() == TUMBLE_END
@@ -273,7 +270,6 @@ public static SqlNode replaceSelectFieldName(SqlNode selectNode,
273270
|| selectNode.getKind() == TIMESTAMP_DIFF
274271
|| selectNode.getKind() == LIKE
275272
|| selectNode.getKind() == COALESCE
276-
277273
){
278274
SqlBasicCall sqlBasicCall = (SqlBasicCall) selectNode;
279275
for(int i=0; i<sqlBasicCall.getOperands().length; i++){

0 commit comments

Comments
 (0)