We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent babe395 commit 70508f0Copy full SHA for 70508f0
1 file changed
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
@@ -733,9 +733,8 @@ object ReorderJoin extends Rule[LogicalPlan] with PredicateHelper {
733
// find out the first join that have at least one join condition
734
val conditionalJoin = rest.find { plan =>
735
val refs = left.outputSet ++ plan.outputSet
736
- conditions.filterNot(_.references.subsetOf(left.outputSet))
737
- .filterNot(_.references.subsetOf(plan.outputSet))
738
- .exists(cond => cond.references.subsetOf(refs))
+ conditions.filterNot(canEvaluate(_, left)).filterNot(canEvaluate(_, plan))
+ .exists(_.references.subsetOf(refs))
739
}
740
// pick the next one if no condition left
741
val right = conditionalJoin.getOrElse(rest.head)
0 commit comments