Ziru Niu created ARROW-11051:
--------------------------------
Summary: [Rust] Array sum result is wrong with remainder fields
Key: ARROW-11051
URL: https://issues.apache.org/jira/browse/ARROW-11051
Project: Apache Arrow
Issue Type: Bug
Components: Rust
Affects Versions: 2.0.0
Environment: Ubuntu 20.04. rustc nightly
Reporter: Ziru Niu
Minimal example
```
use arrow::\{array::PrimitiveArray, datatypes::Int64Type};
fn main() {
let mut s = vec![];
for _ in 0..32 {
s.push(Some(1i64));
s.push(None);
}
let v: PrimitiveArray<Int64Type> = s.into();
dbg!(arrow::compute::sum(&v));
}
```
The following code in `compute::sum` is wrong. The bit mask is checked reversed.
```
remainder.iter().enumerate().for_each(|(i, value)| {
if remainder_bits & (1 << i) != 0 {
remainder_sum = remainder_sum + *value;
}
});
```
--
This message was sent by Atlassian Jira
(v8.3.4#803005)