This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-11324-bf3bc57d41f8f66bd35a117194aa26c23e1bb764 in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
commit 6b34163d51aa59f7cac2edcb74e8bd1ddc6b9120 Author: Raz Luvaton <[email protected]> AuthorDate: Tue Oct 6 15:54:40 2026 +0000 chore: reuse allocations in partition (#11324) # Which issue does this PR close? None # Rationale for this change No need to add extra allocation of the boolean buffer, we can reuse the existing one # What changes are included in this PR? changed partition to use mutable bit ops # Are these changes tested? Existing tests # Are there any user-facing changes? No --- arrow-ord/src/partition.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/arrow-ord/src/partition.rs b/arrow-ord/src/partition.rs index eab0d874fd..cc9c30f6c7 100644 --- a/arrow-ord/src/partition.rs +++ b/arrow-ord/src/partition.rs @@ -143,10 +143,14 @@ pub fn partition(columns: &[ArrayRef]) -> Result<Partitions, ArrowError> { } let acc = find_boundaries(&columns[0])?; - let acc = columns - .iter() - .skip(1) - .try_fold(acc, |acc, c| find_boundaries(c.as_ref()).map(|b| &acc | &b))?; + let acc = columns.iter().skip(1).try_fold(acc, |mut acc, c| { + find_boundaries(c.as_ref()).map(|b| { + // Do OrAssign to try to reuse the existing buffer if possible + acc |= &b; + + acc + }) + })?; Ok(Partitions(Some(acc))) }
