alamb commented on issue #6692: URL: https://github.com/apache/arrow-rs/issues/6692#issuecomment-2895840562
I have been playing around with various options for this feature in the context of https://github.com/apache/arrow-rs/issues/7456 where I want to save the results of applying a filter with minimal buffering - https://github.com/apache/arrow-rs/pull/7513 ## We already have the `concat` method on some builders Several of the array builders already have a [`append_array`](https://docs.rs/arrow/latest/arrow/index.html?search=append_array) function  Adding some new `concat_array` methods for other builders seems reasonable and follows the existing patterns in this crate ## Could expose the contents of `take` and `filter` as extension traits on `Builders` I was thinking we could potentially add new `filter` methods on the builders using the same implementations as the filter kernel ```rust pub trait BuilderFilterExt { /// Appends all values from `array` to the current builder where `filter` is Some(true) /// Rows where `filter` is SOme(false) or None will not be copied pub fn append_filter(&mut self, array: &ArrayRef, filter: &BooleanArray) } ``` I think we could likely the refactor the filter kernels to potentially use that trait internally. The same thing can be done for `take` I plan to try prototyping it to see if it makes a difference in the context of -- 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]
