-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Description
When I use the filter kernel with Null strings, any input column that was Null turns into an empty string after filtering.
For example, this test (in filter.rs) should pass:
#[test]
fn test_filter_string_array_with_null() {
let a = StringArray::from(vec![Some("hello"), None, Some("world"), None]);
let b = BooleanArray::from(vec![true, false, false, true]);
let c = filter(&a, &b).unwrap();
let d = c.as_ref().as_any().downcast_ref::<StringArray>().unwrap();
assert_eq!(2, d.len());
assert_eq!("hello", d.value(0));
assert_eq!(true, d.is_null(1));
}But instead it fails (the second element in the output array should be null )
---- compute::kernels::filter::tests::test_filter_string_array_with_null stdout ----
thread 'compute::kernels::filter::tests::test_filter_string_array_with_null' panicked at 'assertion failed: `(left == right)`
left: `true`,
right: `false`', arrow/src/compute/kernels/filter.rs:686:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtraceReporter: Andrew Lamb / @alamb
Assignee: Andrew Lamb / @alamb
Related issues:
- [Rust] BinaryArray filter replaces nulls with empty strings (is duplicated by)
PRs and other links:
Note: This issue was originally created as ARROW-10136. Please see the migration documentation for further details.