File tree 1 file changed +8
-5
lines changed
1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -156,16 +156,19 @@ impl<I: OffsetSizeTrait> OffsetBuffer<I> {
156
156
157
157
fn build_generic_byte_view ( self ) -> GenericByteViewBuilder < BinaryViewType > {
158
158
let mut builder = GenericByteViewBuilder :: < BinaryViewType > :: with_capacity ( self . len ( ) ) ;
159
- let mut values = self . values ;
159
+ let buffer = self . values . into ( ) ;
160
+ let block = builder. append_block ( buffer) ;
160
161
for window in self . offsets . windows ( 2 ) {
161
162
let start = window[ 0 ] ;
162
163
let end = window[ 1 ] ;
163
164
let len = ( end - start) . to_usize ( ) . unwrap ( ) ;
164
- let b = values. drain ( ..len) . collect :: < Vec < u8 > > ( ) ;
165
- if b. is_empty ( ) {
166
- builder. append_null ( ) ;
165
+
166
+ if len != 0 {
167
+ builder
168
+ . try_append_view ( block, start. as_usize ( ) as u32 , len as u32 )
169
+ . unwrap ( ) ;
167
170
} else {
168
- builder. append_value ( b ) ;
171
+ builder. append_null ( ) ;
169
172
}
170
173
}
171
174
builder
You can’t perform that action at this time.
0 commit comments