mzabaluev-flarion opened a new pull request, #11841: URL: https://github.com/apache/arrow-rs/pull/11841
# Which issue does this PR close? - Part of #11839 # Rationale for this change `List`, `LargeList`, `FixedSizeList` and `Map` currently have no native `filter` kernel and go through the `MutableArrayData` fallback. There are no benchmarks for filtering these types, so there is nothing to compare the upcoming native kernels against. # What changes are included in this PR? New cases in `arrow/benches/filter_kernels.rs`, each at 1/2, 1023/1024 and 1/1024 selectivity, with both a plain and a prebuilt (`filter context`) predicate: - `list<i32>` - `list<struct<i64, utf8>>` - `struct<8 x i64, list<struct<i64, utf8>>>`: the column shape from apache/datafusion#26581, with up to 64 (about 32 on average) items per row - `fixed_size_list<i32>` and `fixed_size_list<struct<i64, utf8>>` - `map<utf8, i64>` The existing `bench_util` helpers are reused where they fit. Small local helpers build the struct-valued lists. # Are these changes tested? Benchmarks only. Current numbers on `main` (Apple M4 Pro, plain predicate): | case | kept 1/2 | kept 1023/1024 | kept 1/1024 | |---|---|---|---| | list\<i32\> w NULLs | 576 µs | 96 µs | 2.9 µs | | list\<struct\<i64, utf8\>\> w NULLs | 1.47 ms | 1.46 ms | 6.3 µs | | struct\<8 x i64, list\<struct\<i64, utf8\>\>\> w NULLs | 3.85 ms | 6.04 ms | 13.4 µs | | fixed_size_list\<i32\> w NULLs | 413 µs | 39 µs | 2.6 µs | | fixed_size_list\<struct\<i64, utf8\>\> | 903 µs | 444 µs | 4.9 µs | | map\<utf8, i64\> w NULLs | 1.50 ms | 2.88 ms | 5.9 µs | Some 1023/1024 cases are slower than the 1/2 cases. The struct and map rows show this most clearly. # Are there any significant user-facing changes? No. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
