use vortex_error::VortexResult;
use vortex_error::vortex_ensure;
use crate::Array;
use crate::ArrayRef;
use crate::builtins::ArrayBuiltins;
use crate::scalar::Scalar;
#[deprecated(note = "use array.fill_null(scalar) via ArrayBuiltins instead")]
pub fn fill_null(array: &dyn Array, fill_value: &Scalar) -> VortexResult<ArrayRef> {
vortex_ensure!(
!fill_value.is_null(),
"fill_null requires a non-null fill value"
);
let result = array.to_array().fill_null(fill_value.clone())?;
debug_assert!(
fill_value.dtype().is_nullable() || !result.dtype().is_nullable(),
"fill_null with non-nullable fill value must produce a non-nullable result"
);
Ok(result)
}