Github user kumarvishal09 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/1724#discussion_r158803200
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonPreAggregateRules.scala
---
@@ -1264,13 +1264,16 @@ object CarbonPreAggregateDataLoadingRules extends
Rule[LogicalPlan] {
override def apply(plan: LogicalPlan): LogicalPlan = {
val validExpressionsMap =
scala.collection.mutable.LinkedHashMap.empty[String, NamedExpression]
plan transform {
- case aggregate@Aggregate(_, aExp, _) if
validateAggregateExpressions(aExp) =>
+ case aggregate@Aggregate(groupingExpressions, aExp, _) if
validateAggregateExpressions(aExp) =>
aExp.foreach {
case alias: Alias =>
validExpressionsMap ++=
validateAggregateFunctionAndGetAlias(alias)
case _: UnresolvedAlias =>
case namedExpr: NamedExpression =>
validExpressionsMap.put(namedExpr.name, namedExpr)
}
+ groupingExpressions foreach {
--- End diff --
Ok, This is to handle when column is on grouping expression but not on
projection, as we are adding column in data map user can create aggregation
data map by adding that column in projection list. But it is OK to support
this type of expression in pre aggregate .
---