feichai0017 commented on code in PR #20945:
URL: https://github.com/apache/datafusion/pull/20945#discussion_r2937697649


##########
datafusion/expr/src/type_coercion/functions.rs:
##########
@@ -307,6 +307,34 @@ fn try_coerce_types(
     )
 }
 
+fn data_types_match(valid_types: &[DataType], current_types: &[DataType]) -> 
bool {

Review Comment:
   Thanks for mention.
   
   The original reproducer does go through a `Map`, but the actual mismatch at 
the coercion point is on the extracted map value (`List<Struct<...>>`), not on 
the `Map` type itself. That’s why I kept the fast-path relaxation narrow.
   
   I did try a broader `equals_datatype` approach first, but it was too 
permissive in this path and regressed existing cases where runtime kernels 
still require exact type identity, especially around `Struct`. I agree 
`ListView` / `LargeListView` should be handled consistently with `List` / 
`LargeList`, and I’ve updated the matcher for that.
   



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

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to