Github user kunal642 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2109#discussion_r178264718
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/preaaggregate/PreAggregateTableHelper.scala
---
@@ -59,8 +60,22 @@ case class PreAggregateTableHelper(
val df = sparkSession.sql(updatedQuery)
val fieldRelationMap =
PreAggregateUtil.validateActualSelectPlanAndGetAttributes(
df.logicalPlan, queryString)
+ val partitionInfo = parentTable.getPartitionInfo
val fields = fieldRelationMap.keySet.toSeq
val tableProperties = mutable.Map[String, String]()
+ val childPartitionColumns = if (partitionInfo != null &&
+ partitionInfo.getPartitionType ==
PartitionType.NATIVE_HIVE) {
+ val parentPartitionColumns =
partitionInfo.getColumnSchemaList.asScala.map(_.getColumnName)
+ PreAggregateUtil
+ .extractPartitionInfoForAggregateTable(df.logicalPlan,
parentPartitionColumns)
+ } else {Seq()}
+ val partitionerFields = fieldRelationMap.collect {
+ case (field, dataMapField) if childPartitionColumns
+ .exists(childCol =>
+
childCol.equals(dataMapField.columnTableRelationList.get.head.parentColumnName)
&&
+ dataMapField.aggregateFunction.isEmpty) =>
+ PartitionerField(field.name.get, field.dataType, field.columnComment)
+ }.toSeq
--- End diff --
done
---