Github user gatorsmile commented on a diff in the pull request: https://github.com/apache/spark/pull/20816#discussion_r174299321 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala --- @@ -1071,6 +1072,66 @@ object PushPredicateThroughJoin extends Rule[LogicalPlan] with PredicateHelper { } } +/** + * Infer and transit predicate from the preserved side to the null-supplying side + * of an outer join. The predicate is inferred from the preserved side based on the + * join condition and will be pushed over to the null-supplying side. For example, + * if the preserved side has constraints of the form 'a > 5' and the join condition + * is 'a = b', in which 'b' is an attribute from the null-supplying side, a [[Filter]] + * operator of 'b > 5' will be applied to the null-supplying side. --- End diff -- We already support it by `InferFiltersFromConstraints`
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org