andygrove commented on code in PR #3491:
URL: https://github.com/apache/datafusion-comet/pull/3491#discussion_r2819802100


##########
native/spark-expr/src/conversion_funcs/cast.rs:
##########
@@ -1138,25 +1123,26 @@ fn cast_binary_formatter(value: &[u8]) -> String {
 /// Determines if DataFusion supports the given cast in a way that is
 /// compatible with Spark
 fn is_datafusion_spark_compatible(from_type: &DataType, to_type: &DataType) -> 
bool {
-    if from_type == to_type {
-        return true;
-    }
-    match from_type {
-        DataType::Null => {
-            matches!(to_type, DataType::List(_))
-        }
-        DataType::Boolean => matches!(
-            to_type,
-            DataType::Int8
-                | DataType::Int16
-                | DataType::Int32
-                | DataType::Int64
-                | DataType::Float32
-                | DataType::Float64
-                | DataType::Utf8
-        ),
-        DataType::Int8 | DataType::Int16 | DataType::Int32 | DataType::Int64 
=> {
-            matches!(
+    is_identity_cast(from_type, to_type)
+        || match from_type {
+            DataType::Null => {
+                matches!(to_type, DataType::List(_))
+            }
+            DataType::Boolean => can_cast_from_boolean(to_type),

Review Comment:
   I have a similar question here. What is the reason for extracting the match 
into a separate function? There is also a behavior change because this code now 
says that DataFusion is compatible with Spark for casting boolean to  
Decimal128. Is this intentional? The PR description says that DataFusion is not 
compatible for this case.



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