Github user ravipesala commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/1728#discussion_r159058689
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonPreAggregateRules.scala
---
@@ -294,12 +149,30 @@ case class CarbonPreAggregateQueryRules(sparkSession:
SparkSession) extends Rule
val aggregateTableSelector = new AggregateTableSelector(queryPlan,
carbonTable)
// select the list of valid child tables
val selectedDataMapSchemas =
aggregateTableSelector.selectPreAggDataMapSchema()
+ // query has only aggregate expression then selected data map will
be empty
+ // the validate all the child data map otherwise validate selected
data map
+ var selectedAggMaps = if (isProjectionColumnPresent) {
+ selectedDataMapSchemas
+ } else {
+ carbonTable.getTableInfo.getDataMapSchemaList
+ }
+ val aggExpLogicalPlans = aggregateExpressions.map { queryAggExp =>
+ getLogicalPlanFromAggExp(queryAggExp,
+ carbonTable.getTableName,
+ carbonTable.getDatabaseName, logicalRelation)
+ }.toSeq
+ if(aggregateExpressions.size > 0 && selectedAggMaps.size > 0) {
--- End diff --
add comments
---