This is an automated email from the ASF dual-hosted git repository.

tustvold pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new a41248ad8d Fix equality of nested nullable FixedSizeBinary (#4637) 
(#4670)
a41248ad8d is described below

commit a41248ad8d00e2a5b06fb83b089b39d6fb9ff305
Author: Raphael Taylor-Davies <[email protected]>
AuthorDate: Thu Aug 10 14:11:18 2023 +0100

    Fix equality of nested nullable FixedSizeBinary (#4637) (#4670)
---
 arrow-data/src/equal/fixed_binary.rs |  2 +-
 arrow/tests/array_equal.rs           | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/arrow-data/src/equal/fixed_binary.rs 
b/arrow-data/src/equal/fixed_binary.rs
index 9e0e77ff7e..40dacdddd3 100644
--- a/arrow-data/src/equal/fixed_binary.rs
+++ b/arrow-data/src/equal/fixed_binary.rs
@@ -80,7 +80,7 @@ pub(super) fn fixed_binary_equal(
                 lhs_start + lhs_nulls.offset(),
                 len,
             );
-            let rhs_nulls = lhs.nulls().unwrap();
+            let rhs_nulls = rhs.nulls().unwrap();
             let rhs_slices_iter = BitSliceIterator::new(
                 rhs_nulls.validity(),
                 rhs_start + rhs_nulls.offset(),
diff --git a/arrow/tests/array_equal.rs b/arrow/tests/array_equal.rs
index 83a280db67..4abe31a36c 100644
--- a/arrow/tests/array_equal.rs
+++ b/arrow/tests/array_equal.rs
@@ -1295,3 +1295,25 @@ fn test_struct_equal_slice() {
 
     test_equal(&a, &b, true);
 }
+
+#[test]
+fn test_list_excess_children_equal() {
+    let mut a = ListBuilder::new(FixedSizeBinaryBuilder::new(5));
+    a.values().append_value(b"11111").unwrap(); // Masked value
+    a.append_null();
+    a.values().append_value(b"22222").unwrap();
+    a.values().append_null();
+    a.append(true);
+    let a = a.finish();
+
+    let mut b = ListBuilder::new(FixedSizeBinaryBuilder::new(5));
+    b.append_null();
+    b.values().append_value(b"22222").unwrap();
+    b.values().append_null();
+    b.append(true);
+    let b = b.finish();
+
+    assert_eq!(a.value_offsets(), &[0, 1, 3]);
+    assert_eq!(b.value_offsets(), &[0, 0, 2]);
+    assert_eq!(a, b);
+}

Reply via email to