parthchandra commented on code in PR #1226: URL: https://github.com/apache/datafusion-comet/pull/1226#discussion_r1905866905
########## native/spark-expr/src/cast.rs: ########## @@ -817,17 +818,28 @@ fn cast_struct_to_struct( cast_options: &SparkCastOptions, ) -> DataFusionResult<ArrayRef> { match (from_type, to_type) { - (DataType::Struct(_), DataType::Struct(to_fields)) => { - let mut cast_fields: Vec<(Arc<Field>, ArrayRef)> = Vec::with_capacity(to_fields.len()); + (DataType::Struct(from_fields), DataType::Struct(to_fields)) => { + // TODO some of this logic may be specific to converting Parquet to Spark + let mut field_name_to_index_map = HashMap::new(); + for (i, field) in from_fields.iter().enumerate() { + field_name_to_index_map.insert(field.name(), i); + } + assert_eq!(field_name_to_index_map.len(), from_fields.len()); + let mut cast_fields: Vec<ArrayRef> = Vec::with_capacity(to_fields.len()); Review Comment: So this takes care of reordering of struct fields. Do we have a unit test for this? -- 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. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org