diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java index c937b627d0..256a139890 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java @@ -1073,6 +1073,11 @@ public MapJoinConversion getMapJoinConversion(JoinOperator joinOp, OptimizeTezPr Set bigTableCandidateSet = MapJoinProcessor.getBigTableCandidates(conds, /* isSupportFullOuter */ true); + + if (bigTableCandidateSet.isEmpty()) { + return null; + } + int bigTablePosition = -1; // big input cumulative row count long bigInputCumulativeCardinality = -1L; @@ -1180,6 +1185,11 @@ public MapJoinConversion getMapJoinConversion(JoinOperator joinOp, OptimizeTezPr } + if (bigTablePosition == -1) { + LOG.debug("No big table selected, no MapJoin"); + return null; + } + // Check if size of data to shuffle (larger table) is less than given max size if (checkMapJoinThresholds && convertDPHJ && checkShuffleSizeForLargeTable(joinOp, bigTablePosition, context)) {