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