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]

Reply via email to