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:
[email protected]