alamb opened a new issue, #1540: URL: https://github.com/apache/arrow-rs/issues/1540
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.** We currently have a `concat` kernel at https://docs.rs/arrow/11.1.0/arrow/compute/kernels/concat/index.html This concatenates Arrays together. There is also a need to concatenate strings together. Something like `string_concat` that takes two StringArrays (or LargeStringArrays` and concatenates them element by element. DataFusion has an implementation of string concat here: https://github.com/apache/arrow-datafusion/blob/28a6da3d2d175eb9d2f4ff8a6ea58e7c22dae97c/datafusion/physical-expr/src/expressions/binary.rs#L422 which @WinkerDu has kindly been improving. **Describe the solution you'd like** I suggest adding an optimized `string_concat` kernel in `arrow-rs`. @Dandandan outlines some good first optimizations here: https://github.com/apache/arrow-datafusion/pull/2183#discussion_r846838079 The signature would be something like: ```rust pub fn string_concat<OffsetSize: StringOffsetSizeTrait>( left: &GenericStringArray<OffsetSize>, right: &GenericStringArray<OffsetSize> ) -> Result<GenericStringArray<OffsetSize>> ``` An example use: ```rust let left = [Some("foo"), Some("bar"), None].into_iter().collect::<StringArray>(); let right = [None, Some("yyy"), Some("zzz")].into_iter().collect::<StringArray>(); let res = string_concat(left, right).unwrap(); let expected = [None, Some("baryyy"), None].into_iter().collect::<StringArray>(); assert_eq(res, expected); ``` **Describe alternatives you've considered** **Additional context** Add any other context or screenshots about the feature request here. -- 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]
