Skip to content

Commit e2b2b8f

Browse files
committed
Minor: pre allocate view vec
1 parent 843bee2 commit e2b2b8f

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

parquet/src/arrow/array_reader/byte_view_array.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,10 @@ impl ColumnValueDecoder for ByteViewArrayColumnValueDecoder {
162162
));
163163
}
164164

165-
let mut buffer = ViewBuffer::default();
166-
let mut decoder = ByteViewArrayDecoderPlain::new(
167-
buf,
168-
num_values as usize,
169-
Some(num_values as usize),
170-
self.validate_utf8,
171-
);
165+
let num_values = num_values as usize;
166+
let mut buffer = ViewBuffer::with_capacity(num_values);
167+
let mut decoder =
168+
ByteViewArrayDecoderPlain::new(buf, num_values, Some(num_values), self.validate_utf8);
172169
decoder.read(&mut buffer, usize::MAX)?;
173170
self.dict = Some(buffer);
174171
Ok(())

parquet/src/arrow/buffer/view_buffer.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ pub struct ViewBuffer {
3333
}
3434

3535
impl ViewBuffer {
36+
/// Create a new ViewBuffer with capacity for the specified number of views
37+
pub fn with_capacity(capacity: usize) -> Self {
38+
Self {
39+
views: Vec::with_capacity(capacity),
40+
buffers: Vec::new(),
41+
}
42+
}
43+
3644
pub fn is_empty(&self) -> bool {
3745
self.views.is_empty()
3846
}

0 commit comments

Comments
 (0)