dtenedor commented on code in PR #48529:
URL: https://github.com/apache/spark/pull/48529#discussion_r1811478776
##########
sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseParser.g4:
##########
@@ -765,7 +765,7 @@ temporalClause
aggregationClause
: GROUP BY groupingExpressionsWithGroupingAnalytics+=groupByClause
(COMMA groupingExpressionsWithGroupingAnalytics+=groupByClause)*
- | GROUP BY groupingExpressions+=expression (COMMA
groupingExpressions+=expression)* (
+ | GROUP BY groupingExpressions+=namedExpression (COMMA
groupingExpressions+=namedExpression)* (
Review Comment:
Good question, each GROUP BY expression doesn't have to be named, it just
has the option now :)
```
namedExpression
: expression (AS? (name=errorCapturingIdentifier | identifierList))?
;
```
The `AS <alias>` or `<alias>` part is optional. So if it is absent, the
behavior is the same as before. Otherwise if it is present, then we get an
`Alias` expression whose child is the grouping key.
This should have no change in the query execution behavior for the
aggregation operator, since the evaluation of the `Alias` expression is
equivalent to the evaluation of its child expression:
```
override def eval(input: InternalRow): Any = child.eval(input)
```
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]