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

    https://github.com/apache/spark/pull/17899#discussion_r147546887
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
 ---
    @@ -610,6 +611,25 @@ object CollapseWindow extends Rule[LogicalPlan] {
     }
     
     /**
    + * Transpose Adjacent Window Expressions.
    + * - If the partition spec of the parent Window expression is compatible 
with the partition spec
    + *   of the child window expression, transpose them.
    + */
    +object TransposeWindow extends Rule[LogicalPlan] {
    +  private def compatibleParititions(ps1 : Seq[Expression], ps2: 
Seq[Expression]): Boolean = {
    +    ps1.length < ps2.length && 
ps2.take(ps1.length).permutations.exists(ps1.zip(_).forall {
    +      case (l, r) => l.semanticEquals(r)
    +    })
    +  }
    +
    +  def apply(plan: LogicalPlan): LogicalPlan = plan transformUp {
    +    case w1 @ Window(we1, ps1, os1, w2 @ Window(we2, ps2, os2, grandChild))
    --- End diff --
    
    Just to ensure the results are still the same with and without the rule. 


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to