From 9bd778d8f35fc037e5a6552bf9c543b8e77942aa Mon Sep 17 00:00:00 2001 From: "Jorge C. Leitao" Date: Tue, 17 Nov 2020 19:00:53 +0100 Subject: [PATCH] Fixed error in computing equality of fixed-sized binary. --- rust/arrow/src/array/equal/fixed_binary.rs | 4 ++-- rust/arrow/src/array/equal/mod.rs | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/arrow/src/array/equal/fixed_binary.rs b/rust/arrow/src/array/equal/fixed_binary.rs index e0fdf07ec85..f14b097fbb0 100644 --- a/rust/arrow/src/array/equal/fixed_binary.rs +++ b/rust/arrow/src/array/equal/fixed_binary.rs @@ -31,8 +31,8 @@ pub(super) fn fixed_binary_equal( _ => unreachable!(), }; - let lhs_values = lhs.buffer::(0); - let rhs_values = rhs.buffer::(0); + let lhs_values = &lhs.buffers()[0].data()[lhs.offset() * size..]; + let rhs_values = &rhs.buffers()[0].data()[rhs.offset() * size..]; if lhs.null_count() == 0 && rhs.null_count() == 0 { equal_len( diff --git a/rust/arrow/src/array/equal/mod.rs b/rust/arrow/src/array/equal/mod.rs index 4900c8e74e3..9b49bb28a5b 100644 --- a/rust/arrow/src/array/equal/mod.rs +++ b/rust/arrow/src/array/equal/mod.rs @@ -602,6 +602,10 @@ mod tests { let a_slice = a.slice(4, 1); let b_slice = b.slice(4, 1); test_equal(&a_slice, &b_slice, true); + + let a_slice = a.slice(3, 1); + let b_slice = b.slice(3, 1); + test_equal(&a_slice, &b_slice, false); } /// Create a fixed size list of 2 value lengths