This is an automated email from the ASF dual-hosted git repository. wesm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push: new 1a00fe5 ARROW-3797: [Rust] BinaryArray::value_offset incorrect in offset case 1a00fe5 is described below commit 1a00fe5385efbd63ae77f71c63dc101e6cbd26d2 Author: Brent Kerby <blke...@gmail.com> AuthorDate: Thu Nov 15 09:40:17 2018 -0500 ARROW-3797: [Rust] BinaryArray::value_offset incorrect in offset case Fixes a bug in BinaryArray::value_offset. Also added test cases to now cover this method as well as the BinaryArray::value_length method in the case where the underlying ArrayData has a nonzero offset. Author: Brent Kerby <blke...@gmail.com> Closes #2971 from blkerby/BinaryArray_offset_fix and squashes the following commits: fea0730cf <Brent Kerby> Fix argument order in assert_eq in new test cases 8193a265d <Brent Kerby> Add test for BinaryArray::value_offset and value_length for offset case 31cc4527e <Brent Kerby> Fix bug in BinaryArray::value_offset --- rust/src/array.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rust/src/array.rs b/rust/src/array.rs index 0144c64..9157897 100644 --- a/rust/src/array.rs +++ b/rust/src/array.rs @@ -526,7 +526,7 @@ impl BinaryArray { /// Note this doesn't do any bound checking, for performance reason. #[inline] pub fn value_offset(&self, i: i64) -> i32 { - self.value_offset_at(i) + self.value_offset_at(self.data.offset() + i) } /// Returns the length for the element at index `i`. @@ -981,6 +981,10 @@ mod tests { binary_array.get_value(1) ); assert_eq!("parquet", binary_array.get_string(1)); + assert_eq!(5, binary_array.value_offset(0)); + assert_eq!(0, binary_array.value_length(0)); + assert_eq!(5, binary_array.value_offset(1)); + assert_eq!(7, binary_array.value_length(1)); } #[test]