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]

Reply via email to