Jörn Horstmann created ARROW-10025:
--------------------------------------
Summary: [Rust] Filter kernel relies bits outside of valid len of
boolean array
Key: ARROW-10025
URL: https://issues.apache.org/jira/browse/ARROW-10025
Project: Apache Arrow
Issue Type: Bug
Components: Rust, Rust - DataFusion
Affects Versions: 1.0.1
Reporter: Jörn Horstmann
The filter kernel accesses the filter array in chunks of u64 and tries to
access elements if the corresponding bit is set. This assumes that bits outside
of the valid len of that array have to be unset. That assumption is currently
not correct for output of the NOT and the IS NULL kernels, which also operate
on and negate a whole chunk of their input arrays.
{code:java}
#[test]
fn csv_query_with_is_null_predicate() -> Result<()> {
let mut ctx = ExecutionContext::new();
register_aggregate_csv(&mut ctx)?;
let sql = "SELECT COUNT(1) FROM aggregate_test_100 WHERE c1 IS NULL";
let actual = execute(&mut ctx, sql).join("\n");
let expected = "0".to_string();
assert_eq!(expected, actual);
Ok(())
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)