@@ -185,24 +185,9 @@ public void extractJoinNeedSelectField(SqlNode leftNode,
185
185
Set <Tuple2 <String , String >> joinFieldSet ,
186
186
Map <String , String > fieldRef ,
187
187
JoinInfo tableInfo ){
188
- Set <String > fromTableNameSet = Sets .newHashSet ();
189
- TableUtils .getFromTableInfo (leftNode , fromTableNameSet );
190
- Set <String > extractCondition = Sets .newHashSet ();
191
- extractWhereCondition (fromTableNameSet , (SqlBasicCall ) parentWhere , extractCondition );
192
- Set <String > extractSelectField = extractSelectFields (parentSelectList , fromTableNameSet , tableRef );
193
- Set <String > fieldFromJoinCondition = extractSelectFieldFromJoinCondition (joinFieldSet , fromTableNameSet , tableRef );
194
188
195
- extractSelectField .addAll (extractCondition );
196
- extractSelectField .addAll (fieldFromJoinCondition );
197
-
198
- Set <String > rightFromTableNameSet = Sets .newHashSet ();
199
- TableUtils .getFromTableInfo (rightNode , rightFromTableNameSet );
200
- Set <String > extractRightCondition = Sets .newHashSet ();
201
- extractWhereCondition (rightFromTableNameSet , (SqlBasicCall ) parentWhere , extractRightCondition );
202
- Set <String > rightExtractSelectField = extractSelectFields (parentSelectList , rightFromTableNameSet , tableRef );
203
- Set <String > rightFieldFromJoinCondition = extractSelectFieldFromJoinCondition (joinFieldSet , rightFromTableNameSet , tableRef );
204
- rightExtractSelectField .addAll (extractRightCondition );
205
- rightExtractSelectField .addAll (rightFieldFromJoinCondition );
189
+ Set <String > extractSelectField = extractField (leftNode , parentWhere , parentSelectList , tableRef , joinFieldSet );
190
+ Set <String > rightExtractSelectField = extractField (rightNode , parentWhere , parentSelectList , tableRef , joinFieldSet );
206
191
207
192
//重命名right 中和 left 重名的
208
193
Map <String , String > leftTbSelectField = Maps .newHashMap ();
@@ -231,6 +216,25 @@ public void extractJoinNeedSelectField(SqlNode leftNode,
231
216
tableInfo .setRightSelectFieldInfo (rightTbSelectField );
232
217
}
233
218
219
+ public Set <String > extractField (SqlNode sqlNode ,
220
+ SqlNode parentWhere ,
221
+ SqlNodeList parentSelectList ,
222
+ Map <String , String > tableRef ,
223
+ Set <Tuple2 <String , String >> joinFieldSet ){
224
+ Set <String > fromTableNameSet = Sets .newHashSet ();
225
+ TableUtils .getFromTableInfo (sqlNode , fromTableNameSet );
226
+ Set <String > extractCondition = Sets .newHashSet ();
227
+
228
+ extractWhereCondition (fromTableNameSet , (SqlBasicCall ) parentWhere , extractCondition );
229
+ Set <String > extractSelectField = extractSelectFields (parentSelectList , fromTableNameSet , tableRef );
230
+ Set <String > fieldFromJoinCondition = extractSelectFieldFromJoinCondition (joinFieldSet , fromTableNameSet , tableRef );
231
+
232
+ extractSelectField .addAll (extractCondition );
233
+ extractSelectField .addAll (fieldFromJoinCondition );
234
+
235
+ return extractSelectField ;
236
+ }
237
+
234
238
235
239
/**
236
240
* 处理多层join
0 commit comments