-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix inconsistencies in type coercion logic #3419
Comments
Do we need make align the type coercion with arrow? |
I agree that there will be differences. See the conversation at #3407 (comment) for one example where we have to work around a difference and this example is possibly due to a bug in DataFusions logic |
I updated the title and description now that I understand this more. |
Maybe we could return a struct like enum NeededCoercion {
/// cast inputs to these datatypes
coerce_inputs: Vec<Datatype>,
/// the resulting output will be this datatype
output_type: DataType
} Or something 🤔 |
Hi, could someone help to explain what the |
I think this is a reasonable description of coercion: |
Describe the bug
The TypeCoercion rule incorrectly uses
coerce_types
(which should probably be renamed toget_binary_op_type
because it determines the output type of a binary expression) to determine the types to case the lhs and rhs expressions.I think we need a new and similar method for determining the common type to case inputs to, for binary expressions.
Maybe we need to introduce signatures for binary ops so this can be consolidated more, similar to how we handle UDF signatrures.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: