Github user marmbrus commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1015#discussion_r13582164
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
 ---
    @@ -254,28 +257,74 @@ object PushPredicateThroughProject extends 
Rule[LogicalPlan] {
     
     /**
      * Pushes down [[catalyst.plans.logical.Filter Filter]] operators where 
the `condition` can be
    - * evaluated using only the attributes of the left or right side of an 
inner join.  Other
    + * evaluated using only the attributes of the left or right side of a 
join.  Other
      * [[catalyst.plans.logical.Filter Filter]] conditions are moved into the 
`condition` of the
      * [[catalyst.plans.logical.Join Join]].
    + * 
    + * The basic condition (JoinCondition & Filter) push down should conform 
to the rule:
    + * https://cwiki.apache.org/confluence/display/Hive/OuterJoinBehavior
      */
    -object PushPredicateThroughInnerJoin extends Rule[LogicalPlan] with 
PredicateHelper {
    +object PushPredicateThroughJoin extends Rule[LogicalPlan] with 
PredicateHelper {
    +  // split the condition expression into 3 parts, 
    +  // (canEvaluateInLeft, canEvaluateInRight, haveToEvaluateInBoth) 
    --- End diff --
    
    How about?
    
    ```
    /**
     * Splits join condition expressions into three categories based on the 
attributes required
     * to evaluate them.
     * @returns (canEvaluateInLeft, canEvaluateInRight, haveToEvaluateInBoth)
     */
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to