From 83426ca330f4f4f2126efbe00603d49abe63011e Mon Sep 17 00:00:00 2001 From: Alexander Rafferty Date: Sun, 29 Mar 2026 18:14:53 +1100 Subject: [PATCH 1/2] Change occurances of `truncate(0)` to be `clear` instead, mostly for `Vec`s but also one `MutableBuffer`. --- arrow-buffer/src/buffer/mutable.rs | 2 +- arrow-json/src/reader/value_iter.rs | 2 +- parquet/tests/geospatial.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arrow-buffer/src/buffer/mutable.rs b/arrow-buffer/src/buffer/mutable.rs index 9fc860506194..d64ad3e82009 100644 --- a/arrow-buffer/src/buffer/mutable.rs +++ b/arrow-buffer/src/buffer/mutable.rs @@ -1371,7 +1371,7 @@ mod tests { assert_eq!(pool.used(), 40); // Truncate to zero - buffer.truncate(0); + buffer.clear(); assert_eq!(buffer.len(), 0); assert_eq!(pool.used(), 0); } diff --git a/arrow-json/src/reader/value_iter.rs b/arrow-json/src/reader/value_iter.rs index f70b893f52a0..ebaba695adf3 100644 --- a/arrow-json/src/reader/value_iter.rs +++ b/arrow-json/src/reader/value_iter.rs @@ -73,7 +73,7 @@ impl Iterator for ValueIter { } loop { - self.line_buf.truncate(0); + self.line_buf.clear(); match self.reader.read_line(&mut self.line_buf) { Ok(0) => { // read_line returns 0 when stream reached EOF diff --git a/parquet/tests/geospatial.rs b/parquet/tests/geospatial.rs index 4f449df920e8..fcc93661ed97 100644 --- a/parquet/tests/geospatial.rs +++ b/parquet/tests/geospatial.rs @@ -380,8 +380,8 @@ mod test { for i in 0..reader.num_row_groups() { let row_group = reader.get_row_group(i).unwrap(); - values.truncate(0); - def_levels.truncate(0); + values.clear(); + def_levels.clear(); let mut row_group_out = writer.next_row_group().unwrap(); From b4c83a9067659bfb5a319747c1a0e7f4ed26cfe2 Mon Sep 17 00:00:00 2001 From: Alexander Rafferty Date: Sun, 29 Mar 2026 18:15:15 +1100 Subject: [PATCH 2/2] Fixed an inconsistency between `MutableBuffer::truncate` and `MutableBuffer::clear`. --- arrow-buffer/src/buffer/mutable.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arrow-buffer/src/buffer/mutable.rs b/arrow-buffer/src/buffer/mutable.rs index d64ad3e82009..07ef965cb082 100644 --- a/arrow-buffer/src/buffer/mutable.rs +++ b/arrow-buffer/src/buffer/mutable.rs @@ -450,7 +450,13 @@ impl MutableBuffer { /// Clear all existing data from this buffer. pub fn clear(&mut self) { - self.len = 0 + self.len = 0; + #[cfg(feature = "pool")] + { + if let Some(reservation) = self.reservation.lock().unwrap().as_mut() { + reservation.resize(self.len); + } + } } /// Returns the data stored in this buffer as a slice.