From 528e351d4cbdef2a792e2134f8931d62f8eaae34 Mon Sep 17 00:00:00 2001 From: Joe Isaacs Date: Mon, 16 Mar 2026 15:20:08 +0000 Subject: [PATCH] update Signed-off-by: Joe Isaacs --- vortex-array/src/scalar_fn/fns/fill_null/kernel.rs | 6 ++++++ vortex-array/src/scalar_fn/fns/fill_null/mod.rs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/vortex-array/src/scalar_fn/fns/fill_null/kernel.rs b/vortex-array/src/scalar_fn/fns/fill_null/kernel.rs index 353fa415e7e..44f83f5417b 100644 --- a/vortex-array/src/scalar_fn/fns/fill_null/kernel.rs +++ b/vortex-array/src/scalar_fn/fns/fill_null/kernel.rs @@ -3,6 +3,7 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; +use vortex_error::vortex_ensure; use crate::ArrayRef; use crate::ExecutionCtx; @@ -57,6 +58,11 @@ pub(super) fn precondition( array: &ArrayRef, fill_value: &Scalar, ) -> VortexResult> { + vortex_ensure!( + !fill_value.is_null(), + "fill_null requires a non-null fill value" + ); + // If the array has no nulls, fill_null is a no-op (just cast for nullability). if !array.dtype().is_nullable() || array.all_valid()? { return array.to_array().cast(fill_value.dtype().clone()).map(Some); diff --git a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs index dd41c6e547b..5958524998b 100644 --- a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs +++ b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs @@ -105,6 +105,11 @@ impl ScalarFnVTable for FillNull { .as_constant() .ok_or_else(|| vortex_err!("fill_null fill_value must be a constant/scalar"))?; + vortex_ensure!( + !fill_scalar.is_null(), + "fill_null requires a non-null fill value" + ); + let Some(columnar) = input.as_opt::() else { return input.execute::(ctx)?.fill_null(fill_scalar); };