Posted by
GitBox on
Jun 03, 2021; 11:56am
URL: http://apache-carbondata-dev-mailing-list-archive.168.s1.nabble.com/GitHub-carbondata-akkio-97-opened-a-new-pull-request-4129-WIP-alter-rename-complex-types-tp108015p108624.html
akashrn5 commented on a change in pull request #4129:
URL:
https://github.com/apache/carbondata/pull/4129#discussion_r644729305##########
File path: integration/spark/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableColRenameDataTypeChangeCommand.scala
##########
@@ -180,33 +200,50 @@ private[sql] case class CarbonAlterTableColRenameDataTypeChangeCommand(
}
if (alterTableColRenameAndDataTypeChangeModel.isColumnRename) {
// validate the columns to be renamed
- validColumnsForRenaming(carbonColumns, oldCarbonColumn.head, carbonTable)
+ validColumnsForRenaming(carbonColumns, carbonTable)
}
if (isDataTypeChange) {
// validate the columns to change datatype
- validateColumnDataType(alterTableColRenameAndDataTypeChangeModel.dataTypeInfo,
+ AlterTableUtil.validateColumnDataType(alterTableColRenameAndDataTypeChangeModel
+ .dataTypeInfo,
oldCarbonColumn.head)
}
// read the latest schema file
val tableInfo: TableInfo =
metaStore.getThriftTableInfo(carbonTable)
// maintain the added column for schema evolution history
- var addColumnSchema: ColumnSchema = null
+ var addedTableColumnSchema: ColumnSchema = null
var deletedColumnSchema: ColumnSchema = null
var schemaEvolutionEntry: SchemaEvolutionEntry = null
+ var addedColumnsList: List[ColumnSchema] = List.empty[ColumnSchema]
+ var deletedColumnsList: List[ColumnSchema] = List.empty[ColumnSchema]
val columnSchemaList = tableInfo.fact_table.table_columns.asScala.filter(!_.isInvisible)
+ // to validate duplicate children columns
+ var uniqueColumnSet: mutable.Set[String] = mutable.Set.empty
+ /*
+ * columnSchemaList is a flat structure containing all column schemas including both parent
+ * and child.
+ * It is iterated and rename/change-datatype update are made in this list itself.
+ * Entry is made to the schemaEvolutionEntry for each of the update.
+ */
columnSchemaList.foreach { columnSchema =>
- if (columnSchema.column_name.equalsIgnoreCase(oldColumnName)) {
- deletedColumnSchema = columnSchema.deepCopy()
- if (alterTableColRenameAndDataTypeChangeModel.isColumnRename) {
- // if only column rename, just get the column schema and rename, make a
- // schemaEvolutionEntry
+ val columnSchemaName = columnSchema.column_name
+ val isTableColumn = columnSchemaName.equalsIgnoreCase(oldColumnName)
Review comment:
```suggestion
val columnToAlter = columnSchemaName.equalsIgnoreCase(oldColumnName)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[hidden email]