Andrew Lamb created ARROW-10136: ----------------------------------- Summary: [Rust][Arrow] Nulls are transformed into "" after filtering for StringArray Key: ARROW-10136 URL: https://issues.apache.org/jira/browse/ARROW-10136 Project: Apache Arrow Issue Type: Bug Reporter: Andrew Lamb Assignee: Andrew Lamb
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: {code} #[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)); } {code} But instead it fails (the second element in the output array should be null ) {code} ---- 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 backtrace {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)