rohitrastogi commented on code in PR #399:
URL: https://github.com/apache/datafusion-comet/pull/399#discussion_r1593107084
##########
core/src/execution/datafusion/expressions/cast.rs:
##########
@@ -232,6 +232,189 @@ macro_rules! cast_int_to_int_macro {
}};
}
+// When Spark casts to Byte/Short Types, it does not cast directly to
Byte/Short.
Review Comment:
The float and decimal macros have a similar shape, so I considered
consolidating them. One way to consolidate them is to generalize the macros to
accept closures to handle the differences between the decimal and float casts.
I think the generalized macro would have to accept closures for the following
functional differences:
1) determining whether there is an overflow
2) generating the appropriate overflow error
3) transforming the downcasted value (truncating, casting) before entering
the match statement
I tried this, but the code seemed more opaque and verbose in
spark_cast_nonintegral_numeric_to_integral() than the current approach.
Please let me know if you see other ways to refactor to make this more
concise.
--
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]