vortex_runend/compute/
fill_null.rs1use vortex_array::ArrayRef;
5use vortex_array::IntoArray;
6use vortex_array::builtins::ArrayBuiltins;
7use vortex_array::scalar::Scalar;
8use vortex_array::scalar_fn::fns::fill_null::FillNullReduce;
9use vortex_error::VortexResult;
10
11use crate::RunEndArray;
12use crate::RunEndArrayParts;
13use crate::RunEndVTable;
14
15impl FillNullReduce for RunEndVTable {
16 fn fill_null(array: &RunEndArray, fill_value: &Scalar) -> VortexResult<Option<ArrayRef>> {
17 let RunEndArrayParts { values, ends } = array.clone().into_parts();
18 let new_values = values.fill_null(fill_value.clone())?;
19 Ok(Some(
21 unsafe { RunEndArray::new_unchecked(ends, new_values, array.offset(), array.len()) }
22 .into_array(),
23 ))
24 }
25}