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

    https://github.com/apache/spark/pull/9844#discussion_r45691681
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
 ---
    @@ -661,7 +666,9 @@ class Analyzer(
               val evaluatedOrderings = 
resolvedAliasedOrdering.zip(sortOrder).map {
                 case (evaluated, order) =>
                   val index = originalAggExprs.indexWhere {
    -                case Alias(child, _) => child semanticEquals 
evaluated.child
    +                case a@Alias(child, _) =>
    +                  (child semanticEquals evaluated.child) ||
    +                    a.exprId == 
evaluated.child.asInstanceOf[AttributeReference].exprId
                     case other => other semanticEquals evaluated.child
    --- End diff --
    
    @cloud-fan Thanks for your help. I have made changes based on your 
comments. There is one change i am a little concerned about and need your input.
     After computing the finalSortOrders, i am passing it to the pushdown 
computation logic where it tries to compare the semantic equality between sort 
attributes and aggregate expression attributes. For the already resolved 
attribute, the comparison is failing and it considers the attribute as 
pushdownable and things just go wrong :-). So i am comparing the expression id 
of the resolved alias against the aggregation expression's attribute reference. 
It does not seem clean though :-)


---
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.
---

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

Reply via email to