Github user ravipesala commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/1837#discussion_r163760282
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/preaaggregate/PreAggregateUtil.scala
---
@@ -900,4 +876,33 @@ object PreAggregateUtil {
aggDataMapSchema.getProperties.get("CHILD_SELECT
QUERY").replace("&", "=")),
CarbonCommonConstants.DEFAULT_CHARSET)
}
+
+ /**
+ * This method will start load process on the data map
+ */
+ def createLoadCommandForChild(
+ columns: java.util.List[ColumnSchema],
+ dataMapIdentifier: TableIdentifier,
+ dataFrame: DataFrame,
+ isOverwrite: Boolean,
+ sparkSession: SparkSession): CarbonLoadDataCommand = {
+ val headers = columns.asScala.filter { column =>
+
!column.getColumnName.equalsIgnoreCase(CarbonCommonConstants.DEFAULT_INVISIBLE_DUMMY_MEASURE)
+ }.sortBy(_.getSchemaOrdinal).map(_.getColumnName).mkString(",")
+ val loadCommand = CarbonLoadDataCommand(dataMapIdentifier.database,
+ dataMapIdentifier.table,
+ null,
+ Nil,
+ Map("fileheader" -> headers),
+ isOverwriteTable = isOverwrite,
+ dataFrame = None,
+ internalOptions = Map(CarbonCommonConstants.IS_INTERNAL_LOAD_CALL ->
"true"),
+ logicalPlan = Some(dataFrame.queryExecution.logical))
+ loadCommand.processMetadata(sparkSession)
--- End diff --
Better don't process here, just return the command and call
`processMetadata(sparkSession)` in caller for more meaningful as method name
says `createLoadCommandForChild`
---