From ddc8e8328bd44aa7a5a3e8c4754aec0756e3e26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Horstmann?= Date: Wed, 7 Oct 2020 11:19:02 +0200 Subject: [PATCH 1/2] ARROW-10204 Count only bits in valid range --- rust/arrow/src/compute/kernels/filter.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/arrow/src/compute/kernels/filter.rs b/rust/arrow/src/compute/kernels/filter.rs index c6cd711ba1b..ce1bb53de22 100644 --- a/rust/arrow/src/compute/kernels/filter.rs +++ b/rust/arrow/src/compute/kernels/filter.rs @@ -240,7 +240,7 @@ impl FilterContext { } let filter_mask: Vec = (0..64).map(|x| 1u64 << x).collect(); let filter_bytes = filter_array.data_ref().buffers()[0].data(); - let filtered_count = bit_util::count_set_bits(filter_bytes); + let filtered_count = bit_util::count_set_bits_offset(filter_bytes, 0, filter_array.len()); // transmute filter_bytes to &[u64] let mut u64_buffer = MutableBuffer::new(filter_bytes.len()); From ac2de5bb0f134bfd764cb33d236190e332cc76ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Horstmann?= Date: Wed, 7 Oct 2020 15:08:29 +0200 Subject: [PATCH 2/2] ARROW-10204 Formatting --- rust/arrow/src/compute/kernels/filter.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/arrow/src/compute/kernels/filter.rs b/rust/arrow/src/compute/kernels/filter.rs index ce1bb53de22..cb5812c27b4 100644 --- a/rust/arrow/src/compute/kernels/filter.rs +++ b/rust/arrow/src/compute/kernels/filter.rs @@ -240,7 +240,8 @@ impl FilterContext { } let filter_mask: Vec = (0..64).map(|x| 1u64 << x).collect(); let filter_bytes = filter_array.data_ref().buffers()[0].data(); - let filtered_count = bit_util::count_set_bits_offset(filter_bytes, 0, filter_array.len()); + let filtered_count = + bit_util::count_set_bits_offset(filter_bytes, 0, filter_array.len()); // transmute filter_bytes to &[u64] let mut u64_buffer = MutableBuffer::new(filter_bytes.len());