diff --git a/arrow-row/src/run.rs b/arrow-row/src/run.rs index 3d962f43ada8..24eaaa18e018 100644 --- a/arrow-row/src/run.rs +++ b/arrow-row/src/run.rs @@ -134,7 +134,11 @@ pub unsafe fn decode( run_ends.push(R::Native::usize_as(idx)); } unique_row_indices.push(decoded_values.len()); - decoded_values.push(decoded_data.clone()); + let capacity = decoded_data.capacity(); + decoded_values.push(std::mem::replace( + &mut decoded_data, + Vec::with_capacity(capacity), + )); } } // Add the final run end