diff --git a/vortex-array/src/arrays/scalar_fn/rules.rs b/vortex-array/src/arrays/scalar_fn/rules.rs index 4c0ed1acee7..30b46914b8e 100644 --- a/vortex-array/src/arrays/scalar_fn/rules.rs +++ b/vortex-array/src/arrays/scalar_fn/rules.rs @@ -9,10 +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; use crate::arrays::ConstantArray; @@ -34,11 +31,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, - &ScalarFnConstantRule, - &ScalarFnAbstractReduceRule, -]); +pub(super) const RULES: ReduceRuleSet = + ReduceRuleSet::new(&[&ScalarFnPackToStructRule, &ScalarFnAbstractReduceRule]); pub(super) const PARENT_RULES: ParentRuleSet = ParentRuleSet::new(&[ ParentRuleSet::lift(&ScalarFnUnaryFilterPushDownRule), @@ -71,24 +65,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..f78a225d6c7 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -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,17 +429,17 @@ 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()); // upper is a fixed constant let upper = ConstantArray::new(Scalar::from(2), 5).into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, @@ -446,17 +448,17 @@ 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]); // lower is also a constant let lower = ConstantArray::new(Scalar::from(0), 5).into_array(); - #[expect(deprecated)] let matches = between_canonical( &array, &lower, @@ -465,10 +467,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 +510,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 +527,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!( 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..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; @@ -827,7 +826,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 +843,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(),