From 00865424b370b58c66e5e46ef9888ede2e894cec Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Wed, 22 Jul 2026 00:15:40 +0100 Subject: [PATCH] non_nan_check doesn't try to cast arbitrary scalars to primitive Signed-off-by: Robert Kruszewski --- vortex-array/src/stats/rewrite/builtins.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vortex-array/src/stats/rewrite/builtins.rs b/vortex-array/src/stats/rewrite/builtins.rs index ea656f24546..77d5b31bca9 100644 --- a/vortex-array/src/stats/rewrite/builtins.rs +++ b/vortex-array/src/stats/rewrite/builtins.rs @@ -571,10 +571,10 @@ fn non_nan_check( proof: impl FnOnce(&Expression) -> NanCheck, ) -> VortexResult { if let Some(scalar) = expr.as_opt::() { - let Some(value) = scalar.as_primitive_opt() else { + if !scalar.dtype().is_float() { return Ok(NanCheck::NotNeeded); - }; - return Ok(if value.is_nan() { + } + return Ok(if scalar.as_primitive().is_nan() { NanCheck::Check(lit(false)) } else { NanCheck::NotNeeded @@ -597,7 +597,7 @@ fn non_nan_check( } fn has_nans(dtype: &DType) -> bool { - matches!(dtype, DType::Primitive(ptype, _) if ptype.is_float()) + dtype.is_float() } fn stat_expr(expr: &Expression, stat: Stat, ctx: &StatsRewriteCtx<'_>) -> Option {