maropu commented on a change in pull request #31318:
URL: https://github.com/apache/spark/pull/31318#discussion_r584716870



##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala
##########
@@ -157,6 +157,30 @@ trait PredicateHelper extends AliasHelper with Logging {
     }
   }
 
+  protected def mergeConjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, And)
+  }
+
+  protected def mergeDisjunctivePredicates(exprs: Seq[Expression]): Expression 
= {

Review comment:
       ditto

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala
##########
@@ -157,6 +157,30 @@ trait PredicateHelper extends AliasHelper with Logging {
     }
   }
 
+  protected def mergeConjunctivePredicates(exprs: Seq[Expression]): Expression 
= {

Review comment:
       This method has only been used once now, so how about inlining it now.
   ```
               // (a && b) && a && (a && c) => a && b && c
               mergeConjunctivePredicates(distinct.toSeq)
         ==>
               // (a && b) && a && (a && c) => a && b && c
               mergePredicates(distinct.toSeq, And)
   ```

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala
##########
@@ -157,6 +157,30 @@ trait PredicateHelper extends AliasHelper with Logging {
     }
   }
 
+  protected def mergeConjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, And)
+  }
+
+  protected def mergeDisjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, Or)
+  }
+
+  private def mergePredicates[Expression](

Review comment:
       Could you leave some comments about what this function does?

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala
##########
@@ -157,6 +157,30 @@ trait PredicateHelper extends AliasHelper with Logging {
     }
   }
 
+  protected def mergeConjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, And)
+  }
+
+  protected def mergeDisjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, Or)
+  }
+
+  private def mergePredicates[Expression](

Review comment:
       `mergePredicates` -> `buildBalancedPredicates`?

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala
##########
@@ -157,6 +157,30 @@ trait PredicateHelper extends AliasHelper with Logging {
     }
   }
 
+  protected def mergeConjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, And)
+  }
+
+  protected def mergeDisjunctivePredicates(exprs: Seq[Expression]): Expression 
= {
+    mergePredicates(exprs, Or)
+  }
+
+  private def mergePredicates[Expression](
+    exprs: Seq[Expression], op: (Expression, Expression) => Expression): 
Expression = {
+    exprs match {
+      case Seq(expression) => expression
+      case expressions =>
+        val grouped = expressions.grouped(2).toSeq
+        val pairwiseOpd = for (g <- grouped) yield {

Review comment:
       nit: `pairwiseOpd` -> `pairwiseExprs`?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to