Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/3027#discussion_r244306298 --- Diff: integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableColRenameDataTypeChangeCommand.scala --- @@ -262,13 +263,28 @@ private[sql] case class CarbonAlterTableColRenameDataTypeChangeCommand( carbonTable: CarbonTable, tableInfo: TableInfo, addColumnSchema: ColumnSchema, - schemaEvolutionEntry: SchemaEvolutionEntry): Unit = { + schemaEvolutionEntry: SchemaEvolutionEntry, + oldCarbonColumn: CarbonColumn): Unit = { val schemaConverter = new ThriftWrapperSchemaConverterImpl - val a = List(schemaConverter.fromExternalToWrapperColumnSchema(addColumnSchema)) - val (tableIdentifier, schemaParts, cols) = AlterTableUtil.updateSchemaInfo( - carbonTable, schemaEvolutionEntry, tableInfo, Some(a))(sparkSession) + // get the carbon column in schema order + val carbonColumns = carbonTable.getCreateOrderColumn(carbonTable.getTableName).asScala + .collect { case carbonColumn if !carbonColumn.isInvisible => carbonColumn.getColumnSchema } + // get the schema ordinal of the column for which the datatype changed or column is renamed + var schemaOrdinal: Int = 0 + carbonColumns.foreach { carbonColumn => + if (carbonColumn.getColumnName.equalsIgnoreCase(oldCarbonColumn.getColName)) { + schemaOrdinal = carbonColumns.indexOf(carbonColumn) --- End diff -- Use filter function to achieve the required output
---