From 5557a3429cbbbdeaf361119fb803375daafcfb98 Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 13:49:47 -0400 Subject: [PATCH 1/6] between Signed-off-by: Robert Kruszewski --- vortex-array/src/arrays/scalar_fn/rules.rs | 21 ------------------- vortex-array/src/scalar_fn/fns/between/mod.rs | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/vortex-array/src/arrays/scalar_fn/rules.rs b/vortex-array/src/arrays/scalar_fn/rules.rs index 4c0ed1acee7..ee7c29ad7f8 100644 --- a/vortex-array/src/arrays/scalar_fn/rules.rs +++ b/vortex-array/src/arrays/scalar_fn/rules.rs @@ -9,9 +9,7 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; use crate::ArrayRef; -use crate::Canonical; use crate::IntoArray; -use crate::LEGACY_SESSION; use crate::VortexSessionExecute; use crate::array::ArrayView; use crate::arrays::Constant; @@ -36,7 +34,6 @@ use crate::validity::Validity; pub(super) const RULES: ReduceRuleSet = ReduceRuleSet::new(&[ &ScalarFnPackToStructRule, - &ScalarFnConstantRule, &ScalarFnAbstractReduceRule, ]); @@ -71,24 +68,6 @@ impl ArrayReduceRule for ScalarFnPackToStructRule { } } -#[derive(Debug)] -struct ScalarFnConstantRule; -impl ArrayReduceRule for ScalarFnConstantRule { - fn reduce(&self, array: ArrayView<'_, ScalarFnVTable>) -> VortexResult> { - if !array.children().iter().all(|c| c.is::()) { - return Ok(None); - } - if array.is_empty() { - Ok(Some(Canonical::empty(array.dtype()).into_array())) - } else { - let result = array - .array() - .execute_scalar(0, &mut LEGACY_SESSION.create_execution_ctx())?; - Ok(Some(ConstantArray::new(result, array.len()).into_array())) - } - } -} - #[derive(Debug)] struct ScalarFnSliceReduceRule; impl ArrayParentReduceRule for ScalarFnSliceReduceRule { diff --git a/vortex-array/src/scalar_fn/fns/between/mod.rs b/vortex-array/src/scalar_fn/fns/between/mod.rs index 127985af93a..7bbcc0d3d0b 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -13,7 +13,7 @@ use vortex_error::vortex_bail; use vortex_proto::expr as pb; use vortex_session::VortexSession; -use crate::ArrayRef; +use crate::{ArrayRef, Columnar}; use crate::Canonical; use crate::ExecutionCtx; use crate::IntoArray; From 45c624a5dc09a3c9ffba5326da6750393c6cb29f Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 14:50:38 -0400 Subject: [PATCH 2/6] more Signed-off-by: Robert Kruszewski --- vortex-array/src/scalar_fn/fns/between/mod.rs | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/vortex-array/src/scalar_fn/fns/between/mod.rs b/vortex-array/src/scalar_fn/fns/between/mod.rs index 7bbcc0d3d0b..7d9c6bc9212 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -13,7 +13,7 @@ use vortex_error::vortex_bail; use vortex_proto::expr as pb; use vortex_session::VortexSession; -use crate::{ArrayRef, Columnar}; +use crate::ArrayRef; use crate::Canonical; use crate::ExecutionCtx; use crate::IntoArray; @@ -324,14 +324,13 @@ impl ScalarFnVTable for Between { #[cfg(test)] mod tests { + use std::sync::LazyLock; + use rstest::rstest; use vortex_buffer::buffer; use super::*; use crate::IntoArray; - use crate::LEGACY_SESSION; - #[expect(deprecated)] - use crate::ToCanonical as _; use crate::VortexSessionExecute; use crate::arrays::BoolArray; use crate::arrays::DecimalArray; @@ -346,9 +345,13 @@ mod tests { use crate::expr::root; use crate::scalar::DecimalValue; use crate::scalar::Scalar; + use crate::session::ArraySession; use crate::test_harness::to_int_indices; use crate::validity::Validity; + static SESSION: LazyLock = + LazyLock::new(|| VortexSession::empty().with::()); + #[test] fn test_display() { let expr = between( @@ -388,7 +391,6 @@ mod tests { let array = buffer![1, 0, 1, 0, 1].into_array(); let upper = buffer![2, 1, 1, 0, 0].into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, @@ -397,10 +399,11 @@ mod tests { lower_strict, upper_strict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap() - .to_bool(); + .execute::(&mut SESSION.create_execution_ctx()) + .unwrap(); let indices = to_int_indices(matches).unwrap(); assert_eq!(indices, expected); @@ -418,7 +421,6 @@ mod tests { ) .into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, @@ -427,10 +429,11 @@ mod tests { lower_strict: StrictComparison::NonStrict, upper_strict: StrictComparison::NonStrict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap() - .to_bool(); + .execute::(&mut SESSION.create_execution_ctx()) + .unwrap(); let indices = to_int_indices(matches).unwrap(); assert!(indices.is_empty()); @@ -446,10 +449,11 @@ mod tests { lower_strict: StrictComparison::NonStrict, upper_strict: StrictComparison::NonStrict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap() - .to_bool(); + .execute::(&mut SESSION.create_execution_ctx()) + .unwrap(); let indices = to_int_indices(matches).unwrap(); assert_eq!(indices, vec![0, 1, 3]); @@ -465,10 +469,11 @@ mod tests { lower_strict: StrictComparison::NonStrict, upper_strict: StrictComparison::NonStrict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap() - .to_bool(); + .execute::(&mut SESSION.create_execution_ctx()) + .unwrap(); let indices = to_int_indices(matches).unwrap(); assert_eq!(indices, vec![0, 1, 2, 3, 4]); } @@ -507,7 +512,7 @@ mod tests { lower_strict: StrictComparison::Strict, upper_strict: StrictComparison::NonStrict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap(); assert_arrays_eq!( @@ -524,7 +529,7 @@ mod tests { lower_strict: StrictComparison::NonStrict, upper_strict: StrictComparison::Strict, }, - &mut LEGACY_SESSION.create_execution_ctx(), + &mut SESSION.create_execution_ctx(), ) .unwrap(); assert_arrays_eq!( From 9019c38e3702901523b1d0773dfb6b4a4e24b8e0 Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 15:06:11 -0400 Subject: [PATCH 3/6] format Signed-off-by: Robert Kruszewski --- vortex-array/src/arrays/scalar_fn/rules.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/vortex-array/src/arrays/scalar_fn/rules.rs b/vortex-array/src/arrays/scalar_fn/rules.rs index ee7c29ad7f8..1a374ae3004 100644 --- a/vortex-array/src/arrays/scalar_fn/rules.rs +++ b/vortex-array/src/arrays/scalar_fn/rules.rs @@ -32,10 +32,8 @@ use crate::scalar_fn::ScalarFnRef; use crate::scalar_fn::fns::pack::Pack; use crate::validity::Validity; -pub(super) const RULES: ReduceRuleSet = ReduceRuleSet::new(&[ - &ScalarFnPackToStructRule, - &ScalarFnAbstractReduceRule, -]); +pub(super) const RULES: ReduceRuleSet = + ReduceRuleSet::new(&[&ScalarFnPackToStructRule, &ScalarFnAbstractReduceRule]); pub(super) const PARENT_RULES: ParentRuleSet = ParentRuleSet::new(&[ ParentRuleSet::lift(&ScalarFnUnaryFilterPushDownRule), From d20159f010c121056ada36bd4927357fbe155b8e Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 15:07:55 -0400 Subject: [PATCH 4/6] fix Signed-off-by: Robert Kruszewski --- vortex-array/src/arrays/scalar_fn/rules.rs | 1 - vortex-array/src/scalar_fn/fns/between/mod.rs | 2 -- 2 files changed, 3 deletions(-) diff --git a/vortex-array/src/arrays/scalar_fn/rules.rs b/vortex-array/src/arrays/scalar_fn/rules.rs index 1a374ae3004..30b46914b8e 100644 --- a/vortex-array/src/arrays/scalar_fn/rules.rs +++ b/vortex-array/src/arrays/scalar_fn/rules.rs @@ -10,7 +10,6 @@ use vortex_error::VortexResult; use crate::ArrayRef; use crate::IntoArray; -use crate::VortexSessionExecute; use crate::array::ArrayView; use crate::arrays::Constant; use crate::arrays::ConstantArray; diff --git a/vortex-array/src/scalar_fn/fns/between/mod.rs b/vortex-array/src/scalar_fn/fns/between/mod.rs index 7d9c6bc9212..f78a225d6c7 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -440,7 +440,6 @@ mod tests { // upper is a fixed constant let upper = ConstantArray::new(Scalar::from(2), 5).into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, @@ -460,7 +459,6 @@ mod tests { // lower is also a constant let lower = ConstantArray::new(Scalar::from(0), 5).into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, From b40f7a04fad73e04cc7608f5272c503ba538516e Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 15:18:03 -0400 Subject: [PATCH 5/6] fixtests Signed-off-by: Robert Kruszewski --- vortex-array/src/scalar_fn/fns/list_contains/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs index 2a79a0c6af2..13b1660b6c3 100644 --- a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs +++ b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs @@ -827,7 +827,6 @@ mod tests { let expr = list_contains(root(), lit(2i32)); let contains = list_array.apply(&expr).unwrap(); - assert!(contains.is::(), "Expected constant result"); let expected = BoolArray::from_iter([true, true]); assert_arrays_eq!(contains, expected); } @@ -845,7 +844,6 @@ mod tests { let expr = list_contains(root(), lit(2i32)); let contains = list_array.apply(&expr).unwrap(); - assert!(contains.is::(), "Expected constant result"); let expected = BoolArray::new( [false, false, false, false, false].into_iter().collect(), From 5b07f05a8b1e9a4105e35f4538bdd84bbae49505 Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Mon, 20 Apr 2026 15:26:46 -0400 Subject: [PATCH 6/6] import Signed-off-by: Robert Kruszewski --- vortex-array/src/scalar_fn/fns/list_contains/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs index 13b1660b6c3..c1b8687d0b7 100644 --- a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs +++ b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs @@ -483,7 +483,6 @@ mod tests { use crate::expr::stats::Stat; use crate::scalar::Scalar; use crate::scalar_fn::fns::list_contains::BoolArray; - use crate::scalar_fn::fns::list_contains::Constant; use crate::scalar_fn::fns::list_contains::ConstantArray; use crate::scalar_fn::fns::list_contains::ListViewArray; use crate::scalar_fn::fns::list_contains::PrimitiveArray;