Skip to content

Commit ea12790

Browse files
committed
Apply viirya's reviews
1 parent a809274 commit ea12790

File tree

1 file changed

+13
-13
lines changed
  • sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis

1 file changed

+13
-13
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,26 +1009,26 @@ class Analyzer(
10091009
!child.output.exists(a => resolver(a.name, attrName))
10101010
}
10111011

1012+
private def mayResolveAttrByAggregateExprs(
1013+
exprs: Seq[Expression], aggs: Seq[NamedExpression], child: LogicalPlan): Seq[Expression] = {
1014+
exprs.map { _.transform {
1015+
case u: UnresolvedAttribute if notResolvableByChild(u.name, child) =>
1016+
aggs.find(ne => resolver(ne.name, u.name)).getOrElse(u)
1017+
}}
1018+
}
1019+
10121020
override def apply(plan: LogicalPlan): LogicalPlan = plan.resolveOperators {
10131021
case agg @ Aggregate(groups, aggs, child)
10141022
if conf.groupByAliases && child.resolved && aggs.forall(_.resolved) &&
10151023
groups.exists(!_.resolved) =>
1016-
agg.copy(groupingExpressions = groups.map { _.transform {
1017-
case u: UnresolvedAttribute if notResolvableByChild(u.name, child) =>
1018-
aggs.find(ne => resolver(ne.name, u.name)).getOrElse(u)
1019-
}
1020-
})
1024+
agg.copy(groupingExpressions = mayResolveAttrByAggregateExprs(groups, aggs, child))
10211025

10221026
case gs @ GroupingSets(selectedGroups, groups, child, aggs)
10231027
if conf.groupByAliases && child.resolved && aggs.forall(_.resolved) &&
1024-
(selectedGroups :+ groups).exists(_.exists(_.isInstanceOf[UnresolvedAttribute])) =>
1025-
def mayResolveAttrByAggregateExprs(exprs: Seq[Expression]): Seq[Expression] = exprs.map {
1026-
case u: UnresolvedAttribute if notResolvableByChild(u.name, child) =>
1027-
aggs.find(ne => resolver(ne.name, u.name)).getOrElse(u)
1028-
case e => e
1029-
}
1030-
gs.copy(selectedGroupByExprs = selectedGroups.map(mayResolveAttrByAggregateExprs),
1031-
groupByExprs = mayResolveAttrByAggregateExprs(groups))
1028+
groups.exists(_.isInstanceOf[UnresolvedAttribute]) =>
1029+
gs.copy(
1030+
selectedGroupByExprs = selectedGroups.map(mayResolveAttrByAggregateExprs(_, aggs, child)),
1031+
groupByExprs = mayResolveAttrByAggregateExprs(groups, aggs, child))
10321032
}
10331033
}
10341034

0 commit comments

Comments
 (0)