Skip to content

Commit a83e544

Browse files
author
gituser
committed
Merge branch '1.8_release_3.9.x' into 1.8_release_3.10.x
2 parents 0dbf0d4 + 93f6b7d commit a83e544

File tree

12 files changed

+1467
-586
lines changed

12 files changed

+1467
-586
lines changed

core/src/main/java/com/dtstack/flink/sql/Main.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ private static void sqlTranslation(String localSqlPluginPath, StreamTableEnviron
153153
SideSqlExec sideSqlExec = new SideSqlExec();
154154
sideSqlExec.setLocalSqlPluginPath(localSqlPluginPath);
155155
for (CreateTmpTableParser.SqlParserResult result : sqlTree.getTmpSqlList()) {
156-
sideSqlExec.registerTmpTable(result, sideTableMap, tableEnv, registerTableCache);
156+
sideSqlExec.exec(result.getExecSql(), sideTableMap, tableEnv, registerTableCache, queryConfig, result);
157157
}
158158

159159
for (InsertSqlParser.SqlParseResult result : sqlTree.getExecSqlList()) {
@@ -169,7 +169,7 @@ private static void sqlTranslation(String localSqlPluginPath, StreamTableEnviron
169169
SqlNode sqlNode = org.apache.calcite.sql.parser.SqlParser.create(realSql, CalciteConfig.MYSQL_LEX_CONFIG).parseStmt();
170170
String tmpSql = ((SqlInsert) sqlNode).getSource().toString();
171171
tmp.setExecSql(tmpSql);
172-
sideSqlExec.registerTmpTable(tmp, sideTableMap, tableEnv, registerTableCache);
172+
sideSqlExec.exec(tmp.getExecSql(), sideTableMap, tableEnv, registerTableCache, queryConfig, tmp);
173173
} else {
174174
for (String sourceTable : result.getSourceTableList()) {
175175
if (sideTableMap.containsKey(sourceTable)) {
@@ -179,10 +179,14 @@ private static void sqlTranslation(String localSqlPluginPath, StreamTableEnviron
179179
}
180180
if (isSide) {
181181
//sql-dimensional table contains the dimension table of execution
182-
sideSqlExec.exec(result.getExecSql(), sideTableMap, tableEnv, registerTableCache, queryConfig);
182+
sideSqlExec.exec(result.getExecSql(), sideTableMap, tableEnv, registerTableCache, queryConfig, null);
183183
}else{
184+
System.out.println("----------exec sql without dimension join-----------" );
185+
System.out.println("----------real sql exec is--------------------------");
186+
System.out.println(result.getExecSql());
184187
FlinkSQLExec.sqlUpdate(tableEnv, result.getExecSql(), queryConfig);
185188
if(LOG.isInfoEnabled()){
189+
System.out.println();
186190
LOG.info("exec sql: " + result.getExecSql());
187191
}
188192
}

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

+36-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
package com.dtstack.flink.sql.side;
2222

2323
import com.google.common.collect.HashBasedTable;
24+
import org.apache.commons.lang3.StringUtils;
2425

2526
/**
26-
* Reason:
27+
* 用于记录转换之后的表和原来表直接字段的关联关系
2728
* Date: 2018/8/30
2829
* Company: www.dtstack.com
2930
* @author xuchao
@@ -37,6 +38,8 @@ public class FieldReplaceInfo {
3738

3839
private String targetTableAlias = null;
3940

41+
private FieldReplaceInfo preNode = null;
42+
4043
public void setMappingTable(HashBasedTable<String, String, String> mappingTable) {
4144
this.mappingTable = mappingTable;
4245
}
@@ -57,7 +60,39 @@ public String getTargetTableAlias() {
5760
return targetTableAlias;
5861
}
5962

63+
public FieldReplaceInfo getPreNode() {
64+
return preNode;
65+
}
66+
67+
public void setPreNode(FieldReplaceInfo preNode) {
68+
this.preNode = preNode;
69+
}
70+
6071
public void setTargetTableAlias(String targetTableAlias) {
6172
this.targetTableAlias = targetTableAlias;
6273
}
74+
75+
/**
76+
* 根据原始的tableName + fieldName 获取转换之后的fieldName
77+
* @param tableName
78+
* @param fieldName
79+
* @return
80+
*/
81+
public String getTargetFieldName(String tableName, String fieldName){
82+
String targetFieldName = mappingTable.get(tableName, fieldName);
83+
if(StringUtils.isNotBlank(targetFieldName)){
84+
return targetFieldName;
85+
}
86+
87+
if(preNode == null){
88+
return null;
89+
}
90+
91+
String preNodeTargetFieldName = preNode.getTargetFieldName(tableName, fieldName);
92+
if(StringUtils.isBlank(preNodeTargetFieldName)){
93+
return null;
94+
}
95+
96+
return mappingTable.get(preNode.getTargetTableAlias(), preNodeTargetFieldName);
97+
}
6398
}

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

+27-19
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public class JoinInfo implements Serializable {
4141

4242
//左表是否是维表
4343
private boolean leftIsSideTable;
44-
//左表是 转换后的中间表
45-
private boolean leftIsMidTable;
44+
45+
private boolean leftIsTmpTable = false;
4646

4747
//右表是否是维表
4848
private boolean rightIsSideTable;
@@ -66,8 +66,6 @@ public class JoinInfo implements Serializable {
6666
private SqlNode selectNode;
6767

6868
private JoinType joinType;
69-
// 左边是中间转换表,做表映射关系,给替换属性名称使用
70-
private Map<String, String> leftTabMapping;
7169

7270
public String getSideTableName(){
7371
if(leftIsSideTable){
@@ -92,21 +90,6 @@ public String getNewTableName(){
9290
return leftStr + "_" + rightTableName;
9391
}
9492

95-
public boolean isLeftIsMidTable() {
96-
return leftIsMidTable;
97-
}
98-
99-
public void setLeftIsMidTable(boolean leftIsMidTable) {
100-
this.leftIsMidTable = leftIsMidTable;
101-
}
102-
103-
public Map<String, String> getLeftTabMapping() {
104-
return leftTabMapping;
105-
}
106-
107-
public void setLeftTabMapping(Map<String, String> leftTabMapping) {
108-
this.leftTabMapping = leftTabMapping;
109-
}
11093

11194
public String getNewTableAlias(){
11295
return leftTableAlias + "_" + rightTableAlias;
@@ -211,4 +194,29 @@ public JoinType getJoinType() {
211194
public void setJoinType(JoinType joinType) {
212195
this.joinType = joinType;
213196
}
197+
198+
public boolean isLeftIsTmpTable() {
199+
return leftIsTmpTable;
200+
}
201+
202+
public void setLeftIsTmpTable(boolean leftIsTmpTable) {
203+
this.leftIsTmpTable = leftIsTmpTable;
204+
}
205+
206+
@Override
207+
public String toString() {
208+
return "JoinInfo{" +
209+
"leftIsSideTable=" + leftIsSideTable +
210+
", leftIsTmpTable=" + leftIsTmpTable +
211+
", rightIsSideTable=" + rightIsSideTable +
212+
", leftTableName='" + leftTableName + '\'' +
213+
", leftTableAlias='" + leftTableAlias + '\'' +
214+
", rightTableName='" + rightTableName + '\'' +
215+
", rightTableAlias='" + rightTableAlias + '\'' +
216+
", condition=" + condition +
217+
", selectFields=" + selectFields +
218+
", selectNode=" + selectNode +
219+
", joinType=" + joinType +
220+
'}';
221+
}
214222
}

0 commit comments

Comments
 (0)