joroKr21 commented on code in PR #10790:
URL: https://github.com/apache/datafusion/pull/10790#discussion_r1988691322


##########
datafusion/functions-array/src/set_ops.rs:
##########
@@ -259,6 +259,17 @@ fn generic_set_lists<OffsetSize: OffsetSizeTrait>(
         return general_array_distinct::<OffsetSize>(l, &field);
     }
 
+    // Handle empty array at rhs case
+    // array_union(arr, []) -> arr;
+    // array_intersect(arr, []) -> [];
+    if r.value_length(0).is_zero() {
+        if set_op == SetOp::Union {
+            return Ok(Arc::new(l.clone()) as ArrayRef);
+        } else {
+            return Ok(Arc::new(r.clone()) as ArrayRef);
+        }
+    }

Review Comment:
   ```diff
   diff --git a/datafusion/sqllogictest/test_files/array.slt 
b/datafusion/sqllogictest/test_files/array.slt
   index 3b7f12960..17598be8c 100644
   --- a/datafusion/sqllogictest/test_files/array.slt
   +++ b/datafusion/sqllogictest/test_files/array.slt
   @@ -4371,7 +4371,8 @@ select array_union(arrow_cast([1, 2, 3, 4], 
'LargeList(Int64)'), arrow_cast([5,
    statement ok
    CREATE TABLE arrays_with_repeating_elements_for_union
    AS VALUES
   -  ([1], [2]),
   +  ([0, 1, 1], []),
   +  ([1, 1], [2]),
      ([2, 3], [3]),
      ([3], [3, 4])
    ;
   @@ -4379,6 +4380,7 @@ AS VALUES
    query ?
    select array_union(column1, column2) from 
arrays_with_repeating_elements_for_union;
    ----
   +[0, 1]
    [1, 2]
    [2, 3]
    [3, 4]
   @@ -4386,6 +4388,7 @@ select array_union(column1, column2) from 
arrays_with_repeating_elements_for_uni
    query ?
    select array_union(arrow_cast(column1, 'LargeList(Int64)'), 
arrow_cast(column2, 'LargeList(Int64)')) from 
arrays_with_repeating_elements_for_union;
    ----
   +[0, 1]
    [1, 2]
    [2, 3]
    [3, 4]
   
   ```



-- 
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: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to