alamb commented on issue #3031:
URL: 
https://github.com/apache/arrow-datafusion/issues/3031#issuecomment-1217802797

   I agree the ideal outcome would be that the logical plan has the casts. I 
think the reason the type coercion / casting happens in the physical planner 
was some idea that it could be possible to use different implementations of 
physical exprs that might have different comparison rules (like some system 
that could natively compare i32 and i64 -- via a native kernel, for example)
   
   I am not sure if this ability has every been used in practice but I am not 
sure it would be a simple thing to change now
   
   I suggest you investigate special casing the creation of `PhysicalExpr`s for 
for cast 
https://github.com/apache/arrow-datafusion/blob/89bcfc4827a84c37abdf6476ec164611b270492d/datafusion/physical-expr/src/planner.rs#L172-L181
   
   And basically special case if the argument is a literal, do the cast at plan 
creation time. It wouldn't be super be super general, but I think it would work 
in this case for you
   
   


-- 
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]

Reply via email to