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


---

Reply via email to