diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/joins.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/joins.scala index edbeaf273fd6..117fa268964f 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/joins.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/joins.scala @@ -138,7 +138,7 @@ object EliminateOuterJoin extends Rule[LogicalPlan] with PredicateHelper { join.joinType match { case RightOuter if leftHasNonNullPredicate => Inner - case LeftOuter if rightHasNonNullPredicate => Inner + case LeftOuter if rightHasNonNullPredicate => LeftOuter case FullOuter if leftHasNonNullPredicate && rightHasNonNullPredicate => Inner case FullOuter if leftHasNonNullPredicate => LeftOuter case FullOuter if rightHasNonNullPredicate => RightOuter diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicLogicalOperators.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicLogicalOperators.scala index 10df50479543..f5d48eda601f 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicLogicalOperators.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicLogicalOperators.scala @@ -317,6 +317,8 @@ case class Join( left.constraints case LeftOuter => left.constraints + .union(right.constraints) + .union(splitConjunctivePredicates(condition.get).toSet) case RightOuter => right.constraints case FullOuter =>