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
---