Github user viirya commented on a diff in the pull request: https://github.com/apache/spark/pull/14296#discussion_r72070208 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala --- @@ -1207,6 +1207,17 @@ class Analyzer( val alias = Alias(ae, ae.toString)() aggregateExpressions += alias alias.toAttribute + // Replacing [[NamedExpression]] causes the error on [[Grouping]] because the + // grouping column will be new attribute created by adding additional [[Alias]]. + // So we can't find the grouping column and replace it in the rule + // [[ResolveGroupingAnalytics]]. + case ne: NamedExpression => ne + // Grouping functions are handled in the rule [[ResolveGroupingAnalytics]]. + case e: Expression if grouping.exists(_.semanticEquals(e)) && + !ResolveGroupingAnalytics.hasGroupingFunction(e) => --- End diff -- You mean if we don't add this check? Yes. As the grouping function is pushed down to Aggregation, the rule `ResolveGroupingAnalytics` can't perform the replacement of grouping function.
--- 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 infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org