Github user hvanhovell commented on a diff in the pull request:
https://github.com/apache/spark/pull/15484#discussion_r84006017
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala
---
@@ -488,23 +488,13 @@ class AstBuilder extends SqlBaseBaseVisitor[AnyRef]
with Logging {
if (GROUPING != null) {
// GROUP BY .... GROUPING SETS (...)
- val expressionMap = groupByExpressions.zipWithIndex.toMap
- val numExpressions = expressionMap.size
- val mask = (1 << numExpressions) - 1
- val masks = ctx.groupingSet.asScala.map {
- _.expression.asScala.foldLeft(mask) {
- case (bitmap, eCtx) =>
- // Find the index of the expression.
- val e = typedVisit[Expression](eCtx)
- val index =
expressionMap.find(_._1.semanticEquals(e)).map(_._2).getOrElse(
- throw new ParseException(
- s"$e doesn't show up in the GROUP BY list", ctx))
- // 0 means that the column at the given index is a grouping
column, 1 means it is not,
- // so we unset the bit in bitmap.
- bitmap & ~(1 << (numExpressions - 1 - index))
+ val selectedGroupByExprs = ctx.groupingSet.asScala.map {
+ _.expression.asScala.foldLeft(Seq.empty[Expression]) {
--- End diff --
Just use a map here: `_.expression().asScala.map(e => expression(e))`
---
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]