diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkCrossProductCheck.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkCrossProductCheck.java index d7dc116..f6ca3d0 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkCrossProductCheck.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/SparkCrossProductCheck.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.optimizer.physical; import org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator; +import org.apache.hadoop.hive.ql.exec.ConditionalTask; import org.apache.hadoop.hive.ql.exec.JoinOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.Task; @@ -62,6 +63,11 @@ public Object dispatch(Node nd, Stack stack, Object... nodeOutputs) SparkWork sparkWork = ((SparkTask) currTask).getWork(); checkShuffleJoin(sparkWork); checkMapJoin((SparkTask) currTask); + } else if (currTask instanceof ConditionalTask) { + List> taskList = ((ConditionalTask) currTask).getListTasks(); + for (Task task : taskList) { + dispatch(task, stack, nodeOutputs); + } } return null; }