Rich-T-kid opened a new issue, #11567: URL: https://github.com/apache/arrow-rs/issues/11567
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.** Part of #7761. #11174 routes non-null `UInt32` indices through `BatchCoalescer::push_batch_with_index`. `BooleanArray` still uses `GenericInProgressArray`, whose indexed-copy fallback calls `take` to build an intermediate array before copying or concatenating it into the output. The [GKE benchmark run](https://github.com/apache/arrow-rs/pull/11174#issuecomment-6176104001) shows regressions across the measured `single_boolean` cases: | nulls | selectivity | main | #11174 | change | |---:|---:|---:|---:|---:| | 0 | 0.01 | 1.56 ms | 2.20 ms | 1.40x slower | | 0 | 0.1 | 357.6 us | 514.5 us | 1.44x slower | | 0 | 0.8 | 240.5 us | 307.9 us | 1.28x slower | | 0.1 | 0.001 | 20.2 ms | 25.8 ms | 1.27x slower | | 0.1 | 0.01 | 2.5 ms | 3.2 ms | 1.27x slower | | 0.1 | 0.1 | 617.2 us | 791.8 us | 1.28x slower | | 0.1 | 0.8 | 430.7 us | 506.3 us | 1.18x slower | **Describe the solution you'd like** Add a specialized indexed-copy path for `BooleanArray` that gathers the selected value and validity bits directly into the in-progress buffers without first materializing an intermediate array with `take`. The implementation should preserve the existing bounds-checking contract and cover nullable and non-null arrays, repeated or out-of-order indices, empty indices, and chunking across the target batch size. Use `coalesce_kernels` with `BENCH_FILTER=take` to verify the `single_boolean` regressions are recovered without hurting mixed Boolean cases. -- 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]
