Skip to content

Commit a5c7a9a

Browse files
authored
Use Validity::from when building validities (#1793)
1 parent 01c7511 commit a5c7a9a

File tree

2 files changed

+12
-28
lines changed

2 files changed

+12
-28
lines changed

encodings/runend/src/compress.rs

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,7 @@ fn runend_encode_nullable_primitive<T: NativePType>(
132132

133133
(
134134
ends.freeze(),
135-
PrimitiveArray::new(
136-
values,
137-
Validity::Array(BoolArray::from(validity.finish()).into_array()),
138-
),
135+
PrimitiveArray::new(values, Validity::from(validity.finish())),
139136
)
140137
}
141138

@@ -190,10 +187,9 @@ pub fn runend_decode_typed_primitive<T: NativePType>(
190187
}
191188
PrimitiveArray::new(decoded, values_nullability.into())
192189
}
193-
LogicalValidity::AllInvalid(_) => PrimitiveArray::new(
194-
buffer![T::default(); length],
195-
Validity::Array(BoolArray::from(BooleanBuffer::new_unset(length)).into_array()),
196-
),
190+
LogicalValidity::AllInvalid(_) => {
191+
PrimitiveArray::new(buffer![T::default(); length], Validity::AllInvalid)
192+
}
197193
LogicalValidity::Array(array) => {
198194
let validity = array.into_bool()?.boolean_buffer();
199195
let mut decoded = BufferMut::with_capacity(length);
@@ -215,10 +211,7 @@ pub fn runend_decode_typed_primitive<T: NativePType>(
215211
}
216212
}
217213
}
218-
PrimitiveArray::new(
219-
decoded,
220-
Validity::Array(BoolArray::from(decoded_validity.finish()).into_array()),
221-
)
214+
PrimitiveArray::new(decoded, Validity::from(decoded_validity.finish()))
222215
}
223216
})
224217
}
@@ -238,11 +231,10 @@ pub fn runend_decode_typed_bool(
238231
}
239232
BoolArray::new(decoded.finish(), values_nullability)
240233
}
241-
LogicalValidity::AllInvalid(_) => BoolArray::try_new(
242-
BooleanBuffer::new_unset(length),
243-
Validity::Array(BoolArray::from(BooleanBuffer::new_unset(length)).into_array()),
244-
)
245-
.vortex_expect("invalid array"),
234+
LogicalValidity::AllInvalid(_) => {
235+
BoolArray::try_new(BooleanBuffer::new_unset(length), Validity::AllInvalid)
236+
.vortex_expect("invalid array")
237+
}
246238
LogicalValidity::Array(array) => {
247239
let validity = array.into_bool()?.boolean_buffer();
248240
let mut decoded = BooleanBufferBuilder::new(length);
@@ -264,10 +256,7 @@ pub fn runend_decode_typed_bool(
264256
}
265257
}
266258
}
267-
BoolArray::try_new(
268-
decoded.finish(),
269-
Validity::Array(BoolArray::from(decoded_validity.finish()).into_array()),
270-
)?
259+
BoolArray::try_new(decoded.finish(), Validity::from(decoded_validity.finish()))?
271260
}
272261
})
273262
}

vortex-array/src/array/primitive/mod.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ use std::sync::Arc;
44
mod accessor;
55

66
use arrow_buffer::BooleanBufferBuilder;
7-
use itertools::Itertools;
87
use serde::{Deserialize, Serialize};
98
use vortex_buffer::{Buffer, BufferMut, ByteBuffer};
109
use vortex_dtype::{match_each_native_ptype, DType, NativePType, Nullability, PType};
1110
use vortex_error::{vortex_panic, VortexExpect as _, VortexResult};
1211

13-
use crate::array::BoolArray;
1412
use crate::encoding::ids;
1513
use crate::iter::Accessor;
1614
use crate::stats::StatsSet;
@@ -50,7 +48,7 @@ impl PrimitiveArray {
5048
validity: validity.to_metadata(len).vortex_expect("Invalid validity"),
5149
}),
5250
Some(buffer.into_byte_buffer()),
53-
validity.into_array().into_iter().collect_vec().into(),
51+
validity.into_array().into_iter().collect(),
5452
StatsSet::default(),
5553
)
5654
.and_then(|data| data.try_into())
@@ -92,10 +90,7 @@ impl PrimitiveArray {
9290
}
9391
}
9492
}
95-
Self::new(
96-
values.freeze(),
97-
Validity::Array(BoolArray::from(validity.finish()).into_array()),
98-
)
93+
Self::new(values.freeze(), Validity::from(validity.finish()))
9994
}
10095

10196
pub fn validity(&self) -> Validity {

0 commit comments

Comments
 (0)