Github user ravipesala commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/1544#discussion_r154671553
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/hive/CarbonPreAggregateRules.scala
---
@@ -741,17 +1037,38 @@ case class
CarbonPreAggregateQueryRules(sparkSession: SparkSession) extends Rule
dataType: String = "",
isChangedDataType: Boolean = false,
isFilterColumn: Boolean = false): QueryColumn = {
- val columnSchema = carbonTable.getColumnByName(tableName,
- columnName.toLowerCase).getColumnSchema
- if (isChangedDataType) {
- new QueryColumn(columnSchema, columnSchema.getDataType.getName,
- aggFunction.toLowerCase, isFilterColumn)
+ val columnSchema = carbonTable.getColumnByName(tableName,
columnName.toLowerCase)
+ if(null == columnSchema) {
+ null
} else {
- new QueryColumn(columnSchema,
+ if (isChangedDataType) {
+ new QueryColumn(columnSchema.getColumnSchema,
+ columnSchema.getDataType.getName,
+ aggFunction.toLowerCase,
+ isFilterColumn)
+ } else {
+ new QueryColumn(columnSchema.getColumnSchema,
CarbonScalaUtil.convertSparkToCarbonSchemaDataType(dataType),
aggFunction.toLowerCase, isFilterColumn)
+ }
}
}
+
+ def createChildSelectQuery(tableSchema: TableSchema): String = {
+ val aggregateColumns =
scala.collection.mutable.ArrayBuffer.empty[String]
+ val groupingExpressions =
scala.collection.mutable.ArrayBuffer.empty[String]
+ tableSchema.getListOfColumns.asScala.foreach {
+ a => if (a.getAggFunction.nonEmpty) {
--- End diff --
move up `a =>`
---