Skip to content

Commit f82c757

Browse files
committed
[fix] fix 多级Join Table Not Found
1 parent 25fadc4 commit f82c757

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ private Set<String> extractSelectFieldFromJoinCondition(Set<Tuple2<String, Strin
490490
}
491491

492492
if(tableRef.containsKey(field.f0)){
493-
if(fromTableNameSet.contains(tableRef.get(field.f0))){
493+
if(checkContainIterationTableName(fromTableNameSet, field.f0, tableRef)){
494494
extractFieldList.add(tableRef.get(field.f0) + "." + field.f1);
495495
}
496496
}
@@ -499,6 +499,20 @@ private Set<String> extractSelectFieldFromJoinCondition(Set<Tuple2<String, Strin
499499
return extractFieldList;
500500
}
501501

502+
private boolean checkContainIterationTableName(Set<String> fromTableNameSet, String checkTableName, Map<String, String> mappingTableName) {
503+
for (int i = 0; i < mappingTableName.size() + 1; i++) {
504+
if (fromTableNameSet.contains(checkTableName)) {
505+
return true;
506+
}
507+
508+
checkTableName = mappingTableName.get(checkTableName);
509+
if (checkTableName == null) {
510+
return false;
511+
}
512+
}
513+
return true;
514+
}
515+
502516
private Set<String> extractFieldFromGroupByList(SqlNodeList parentGroupByList,
503517
Set<String> fromTableNameSet,
504518
Map<String, String> tableRef){

0 commit comments

Comments
 (0)