diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinToMultiJoinRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinToMultiJoinRule.java index a0144f3..3824fc8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinToMultiJoinRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveJoinToMultiJoinRule.java @@ -241,12 +241,16 @@ private static boolean isCombinablePredicate(Join join, constructJoinPredicateInfo(join, condition); final JoinPredicateInfo otherJoinPredInfo = HiveCalciteUtil.JoinPredicateInfo. constructJoinPredicateInfo(join, otherCondition); - if (joinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema(). - equals(otherJoinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema())) { + if (joinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema().size() == 0 + || otherJoinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema().size() == 0 + || joinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema().equals( + otherJoinPredInfo.getProjsFromLeftPartOfJoinKeysInJoinSchema())) { return false; } - if (joinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema(). - equals(otherJoinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema())) { + if (joinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema().size() == 0 + || otherJoinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema().size() == 0 + || joinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema().equals( + otherJoinPredInfo.getProjsFromRightPartOfJoinKeysInJoinSchema())) { return false; } return true;