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);
+}