diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java index f1df608..b989723 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java @@ -592,11 +592,6 @@ public OperatorType getType() { return OperatorType.REDUCESINK; } - @Override - public boolean opAllowedBeforeMapJoin() { - return false; - } - public void setSkipTag(boolean value) { this.skipTag = value; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java index 4d84f0f..2321fbd 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java @@ -256,7 +256,7 @@ private static void checkChildOperatorType(Operator op) } } - private static void validateMapJoinTypes(Operator op) + protected static void validateMapJoinTypes(Operator op) throws SemanticException { for (Operator parentOp : op.getParentOperators()) { checkParentOperatorType(parentOp); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SparkMapJoinProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SparkMapJoinProcessor.java index 23ee3ae..3b7bf8c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SparkMapJoinProcessor.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SparkMapJoinProcessor.java @@ -81,6 +81,11 @@ public MapJoinOperator convertMapJoin(HiveConf conf, } } + // make sure only map-joins can be performed. + if (validateMapJoinTree) { + validateMapJoinTypes(mapJoinOp); + } + return mapJoinOp; } }