vortex_runend/compute/
fill_null.rs1use vortex_array::ArrayRef;
5use vortex_array::ArrayView;
6use vortex_array::IntoArray;
7use vortex_array::builtins::ArrayBuiltins;
8use vortex_array::scalar::Scalar;
9use vortex_array::scalar_fn::fns::fill_null::FillNullReduce;
10use vortex_error::VortexResult;
11
12use crate::RunEnd;
13use crate::array::RunEndArrayExt;
14use crate::array::RunEndArraySlotsExt;
15
16impl FillNullReduce for RunEnd {
17 fn fill_null(
18 array: ArrayView<'_, Self>,
19 fill_value: &Scalar,
20 ) -> VortexResult<Option<ArrayRef>> {
21 let new_values = array.values().fill_null(fill_value.clone())?;
22 Ok(Some(
24 unsafe {
25 RunEnd::new_unchecked(
26 array.ends().clone(),
27 new_values,
28 array.offset(),
29 array.len(),
30 )
31 }
32 .into_array(),
33 ))
34 }
35}