52
52
import java .util .Collections ;
53
53
import java .util .List ;
54
54
import java .util .Map ;
55
+ import java .util .Objects ;
55
56
import java .util .Optional ;
56
57
import java .util .Set ;
57
58
import java .util .stream .Collectors ;
@@ -229,7 +230,7 @@ private RexNode createMultiJoinCondition() {
229
230
230
231
public List <List <int []>> getUniqueKeysForInputs () {
231
232
if (inputUniqueKeys == null ) {
232
- final List < List < int []>> computed =
233
+ inputUniqueKeys =
233
234
inputs .stream ()
234
235
.map (
235
236
input -> {
@@ -244,8 +245,7 @@ public List<List<int[]>> getUniqueKeysForInputs() {
244
245
.map (ImmutableBitSet ::toArray )
245
246
.collect (Collectors .toList ());
246
247
})
247
- .collect (Collectors .toList ());
248
- inputUniqueKeys = Collections .unmodifiableList (computed );
248
+ .collect (Collectors .toUnmodifiableList ());
249
249
}
250
250
return inputUniqueKeys ;
251
251
}
@@ -303,7 +303,7 @@ private String getCommonJoinKeyFieldNames() {
303
303
}
304
304
305
305
if (commonJoinKey .isEmpty ()) {
306
- commonJoinKey . add ( "noCommonJoinKey" ) ;
306
+ return "noCommonJoinKey" ;
307
307
}
308
308
309
309
return String .join (", " , commonJoinKey );
@@ -336,28 +336,19 @@ private String formatExpressionWithFieldNames(final RexNode expression, final Re
336
336
* @return formatted join conditions string with field names
337
337
*/
338
338
private String formatJoinConditionsWithFieldNames (final RelWriter pw ) {
339
- if (joinConditions .isEmpty ()) {
340
- return "" ;
341
- }
342
-
343
- final List <String > formattedConditions = new ArrayList <>();
344
- for (final RexNode condition : joinConditions ) {
345
- if (condition != null ) {
346
- formattedConditions .add (formatExpressionWithFieldNames (condition , pw ));
347
- }
348
- }
349
-
350
- return String .join (", " , formattedConditions );
339
+ return joinConditions .stream ()
340
+ .filter (Objects ::nonNull )
341
+ .map (condition -> formatExpressionWithFieldNames (condition , pw ))
342
+ .collect (Collectors .joining (", " ));
351
343
}
352
344
353
345
private String formatInputUniqueKeysWithFieldNames () {
354
346
final List <String > inputUniqueKeyStrings = new ArrayList <>();
355
- for (int i = 0 ; i < inputs .size (); i ++) {
356
- final RelNode input = inputs .get (i );
357
- final List <String > fieldNames = input .getRowType ().getFieldNames ();
347
+ for (final RelNode input : inputs ) {
358
348
final Set <ImmutableBitSet > uniqueKeys = getUniqueKeys (input );
359
349
360
350
if (uniqueKeys != null && !uniqueKeys .isEmpty ()) {
351
+ final List <String > fieldNames = input .getRowType ().getFieldNames ();
361
352
final List <String > uniqueKeyStrings = new ArrayList <>();
362
353
for (final ImmutableBitSet uniqueKey : uniqueKeys ) {
363
354
final List <String > keyFieldNames = new ArrayList <>();
@@ -370,9 +361,8 @@ private String formatInputUniqueKeysWithFieldNames() {
370
361
uniqueKeyStrings .add ("(" + String .join (", " , keyFieldNames ) + ")" );
371
362
}
372
363
}
373
- if (!uniqueKeyStrings .isEmpty ()) {
374
- inputUniqueKeyStrings .add (String .join (", " , uniqueKeyStrings ));
375
- }
364
+
365
+ inputUniqueKeyStrings .add (String .join (", " , uniqueKeyStrings ));
376
366
} else {
377
367
inputUniqueKeyStrings .add ("noUniqueKey" );
378
368
}
0 commit comments