Skip to content

Commit d834a11

Browse files
authored
Remove array_session (#10681)
`vortex_array::array_session()` was a shared constructor that every test, bench and doc example called, whatever it needed from the session. Callers now build the session they need: `VortexSession::empty()` creates vortex-array's session variables on first use, and callers register anything else themselves. Tests share their module's session through a `static SESSION: LazyLock<_>` built with the setup those tests need. Tests that change their session after setting it up, need a different setup, or create a `RuntimeSession` (which holds the runtime current at creation) keep a local session.
1 parent 1de85c8 commit d834a11

660 files changed

Lines changed: 6348 additions & 3815 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Cargo.lock‎

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎encodings/alp/benches/alp_compress.rs‎

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,15 @@ use vortex_alp::decompress_into_array;
1919
use vortex_array::Canonical;
2020
use vortex_array::IntoArray;
2121
use vortex_array::VortexSessionExecute;
22+
use vortex_array::aggregate_fn::session::AggregateFnSession;
2223
use vortex_array::arrays::PrimitiveArray;
2324
use vortex_array::dtype::NativePType;
25+
use vortex_array::dtype::session::DTypeSession;
26+
use vortex_array::memory::MemorySession;
27+
use vortex_array::optimizer::kernels::KernelSession;
28+
use vortex_array::scalar_fn::session::ScalarFnSession;
29+
use vortex_array::session::ArraySession;
30+
use vortex_array::stats::session::StatsSession;
2431
use vortex_array::validity::Validity;
2532
use vortex_buffer::Buffer;
2633
use vortex_buffer::buffer;
@@ -30,6 +37,7 @@ use vortex_session::VortexSession;
3037
static GLOBAL: MiMalloc = MiMalloc;
3138

3239
fn main() {
40+
LazyLock::force(&SESSION);
3341
divan::main();
3442
}
3543

@@ -56,7 +64,14 @@ const BENCH_ARGS: &[(usize, f64, f64)] = &[
5664
];
5765

5866
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
59-
let session = vortex_array::array_session();
67+
let session = VortexSession::empty()
68+
.with::<ArraySession>()
69+
.with::<KernelSession>()
70+
.with::<DTypeSession>()
71+
.with::<ScalarFnSession>()
72+
.with::<AggregateFnSession>()
73+
.with::<MemorySession>()
74+
.with::<StatsSession>();
6075
vortex_alp::initialize(&session);
6176
session
6277
});

‎encodings/alp/src/alp/array.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ mod tests {
492492
use crate::decompress_into_array;
493493

494494
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
495-
let session = vortex_array::array_session();
495+
let session = VortexSession::empty();
496496
crate::initialize(&session);
497497
session
498498
});

‎encodings/alp/src/alp/compress.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ mod tests {
171171
use crate::decompress_into_array;
172172

173173
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
174-
let session = vortex_array::array_session();
174+
let session = VortexSession::empty();
175175
crate::initialize(&session);
176176
session
177177
});

‎encodings/alp/src/alp/compute/between.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ mod tests {
155155
use crate::alp_encode;
156156

157157
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
158-
let session = vortex_array::array_session();
158+
let session = VortexSession::empty();
159159
crate::initialize(&session);
160160
session
161161
});

‎encodings/alp/src/alp/compute/cast.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ mod tests {
6666
use crate::alp_encode;
6767

6868
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
69-
let session = vortex_array::array_session();
69+
let session = VortexSession::empty();
7070
crate::initialize(&session);
7171
session
7272
});

‎encodings/alp/src/alp/compute/compare.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ mod tests {
173173
use crate::alp_encode;
174174

175175
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
176-
let session = vortex_array::array_session();
176+
let session = VortexSession::empty();
177177
crate::initialize(&session);
178178
session
179179
});

‎encodings/alp/src/alp/compute/filter.rs‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,21 @@ impl FilterKernel for ALP {
4141

4242
#[cfg(test)]
4343
mod test {
44+
use std::sync::LazyLock;
45+
4446
use rstest::rstest;
4547
use vortex_array::ArrayRef;
4648
use vortex_array::IntoArray;
4749
use vortex_array::VortexSessionExecute;
48-
use vortex_array::array_session;
4950
use vortex_array::arrays::PrimitiveArray;
5051
use vortex_array::compute::conformance::filter::test_filter_conformance;
5152
use vortex_buffer::buffer;
53+
use vortex_session::VortexSession;
5254

5355
use crate::alp_encode;
5456

57+
static SESSION: LazyLock<VortexSession> = LazyLock::new(VortexSession::empty);
58+
5559
#[rstest]
5660
#[case(buffer![1.23f32, 4.56, 7.89, 10.11, 12.13].into_array())]
5761
#[case(buffer![100.1f64, 200.2, 300.3, 400.4, 500.5].into_array())]
@@ -62,7 +66,7 @@ mod test {
6266
11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0
6367
].into_array())]
6468
fn test_filter_alp_conformance(#[case] array: ArrayRef) {
65-
let mut ctx = array_session().create_execution_ctx();
69+
let mut ctx = SESSION.create_execution_ctx();
6670
let array_primitive = array.execute::<PrimitiveArray>(&mut ctx).unwrap();
6771
let alp = alp_encode(array_primitive.as_view(), None, &mut ctx).unwrap();
6872
test_filter_conformance(&alp.into_array(), &mut ctx);

‎encodings/alp/src/alp/compute/mask.rs‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,24 @@ impl MaskKernel for ALP {
4949

5050
#[cfg(test)]
5151
mod test {
52+
use std::sync::LazyLock;
53+
5254
use rstest::rstest;
5355
use vortex_array::IntoArray;
5456
use vortex_array::VortexSessionExecute;
55-
use vortex_array::array_session;
5657
use vortex_array::arrays::BoolArray;
5758
use vortex_array::arrays::PrimitiveArray;
5859
use vortex_array::compute::conformance::mask::test_mask_conformance;
5960
use vortex_array::dtype::Nullability;
6061
use vortex_array::scalar_fn::fns::mask::MaskKernel;
6162
use vortex_buffer::buffer;
63+
use vortex_session::VortexSession;
6264

6365
use crate::alp::array::ALPArrayExt;
6466
use crate::alp_encode;
6567

68+
static SESSION: LazyLock<VortexSession> = LazyLock::new(VortexSession::empty);
69+
6670
#[rstest]
6771
#[case(buffer![10.5f32, 20.5, 30.5, 40.5, 50.5].into_array())]
6872
#[case(buffer![1000.123f64, 2000.456, 3000.789, 4000.012, 5000.345].into_array())]
@@ -73,7 +77,7 @@ mod test {
7377
1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0
7478
].into_array())]
7579
fn test_mask_alp_conformance(#[case] array: vortex_array::ArrayRef) {
76-
let mut ctx = array_session().create_execution_ctx();
80+
let mut ctx = SESSION.create_execution_ctx();
7781
let array_primitive = array.execute::<PrimitiveArray>(&mut ctx).unwrap();
7882
let alp = alp_encode(array_primitive.as_view(), None, &mut ctx).unwrap();
7983
test_mask_conformance(&alp.into_array(), &mut ctx);
@@ -82,7 +86,7 @@ mod test {
8286
#[test]
8387
fn test_mask_alp_with_patches() {
8488
use std::f64::consts::PI;
85-
let mut ctx = array_session().create_execution_ctx();
89+
let mut ctx = SESSION.create_execution_ctx();
8690
// PI doesn't encode cleanly with ALP, so it creates patches.
8791
let values: Vec<f64> = (0..100)
8892
.map(|i| if i % 4 == 3 { PI } else { 1.0 })
@@ -95,7 +99,7 @@ mod test {
9599

96100
#[test]
97101
fn test_mask_alp_with_patches_casts_surviving_patch_values_to_nullable() {
98-
let mut ctx = array_session().create_execution_ctx();
102+
let mut ctx = SESSION.create_execution_ctx();
99103
let values = PrimitiveArray::from_iter([1.234f32, f32::NAN, 2.345, f32::INFINITY, 3.456]);
100104
let alp = alp_encode(values.as_view(), None, &mut ctx).unwrap();
101105
assert!(alp.patches().is_some(), "expected patches");

‎encodings/alp/src/alp/compute/mod.rs‎

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ mod tests {
1717
use rstest::rstest;
1818
use vortex_array::IntoArray;
1919
use vortex_array::VortexSessionExecute;
20-
use vortex_array::array_session;
2120
use vortex_array::arrays::PrimitiveArray;
2221
use vortex_array::compute::conformance::binary_numeric::test_binary_numeric_array;
2322
use vortex_array::compute::conformance::consistency::test_array_consistency;
@@ -27,34 +26,34 @@ mod tests {
2726
use crate::alp_encode;
2827

2928
static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
30-
let session = array_session();
29+
let session = VortexSession::empty();
3130
crate::initialize(&session);
3231
session
3332
});
3433

3534
#[rstest]
3635
// Basic float arrays
37-
#[case::f32_array(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
38-
#[case::f64_array(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
36+
#[case::f32_array(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
37+
#[case::f64_array(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
3938
// Nullable arrays
40-
#[case::nullable_f32(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f32), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
41-
#[case::nullable_f64(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f64), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
39+
#[case::nullable_f32(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f32), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
40+
#[case::nullable_f64(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f64), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
4241
// Edge cases
43-
#[case::single_element(alp_encode(PrimitiveArray::from_iter([42.42f64]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
42+
#[case::single_element(alp_encode(PrimitiveArray::from_iter([42.42f64]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
4443
// Large arrays
45-
#[case::large_f32(alp_encode(PrimitiveArray::from_iter((0..1000).map(|i| i as f32 * 0.1)).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
44+
#[case::large_f32(alp_encode(PrimitiveArray::from_iter((0..1000).map(|i| i as f32 * 0.1)).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
4645
// Arrays with patterns
47-
#[case::repeating_pattern(alp_encode(PrimitiveArray::from_iter([1.1f32, 2.2, 3.3, 1.1, 2.2, 3.3, 1.1, 2.2, 3.3]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
48-
#[case::close_values(alp_encode(PrimitiveArray::from_iter([100.001f64, 100.002, 100.003, 100.004, 100.005]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
46+
#[case::repeating_pattern(alp_encode(PrimitiveArray::from_iter([1.1f32, 2.2, 3.3, 1.1, 2.2, 3.3, 1.1, 2.2, 3.3]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
47+
#[case::close_values(alp_encode(PrimitiveArray::from_iter([100.001f64, 100.002, 100.003, 100.004, 100.005]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
4948
fn test_alp_consistency(#[case] array: ALPArray) {
5049
test_array_consistency(&array.into_array(), &mut SESSION.create_execution_ctx());
5150
}
5251

5352
#[rstest]
54-
#[case::f32_basic(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
55-
#[case::f64_basic(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
56-
#[case::f32_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f32 * 1.5)).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
57-
#[case::f64_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f64 * 2.5)).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
53+
#[case::f32_basic(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
54+
#[case::f64_basic(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
55+
#[case::f32_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f32 * 1.5)).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
56+
#[case::f64_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f64 * 2.5)).as_view(), None, &mut SESSION.create_execution_ctx()).unwrap())]
5857
fn test_alp_binary_numeric(#[case] array: ALPArray) {
5958
test_binary_numeric_array(&array.into_array(), &mut SESSION.create_execution_ctx());
6059
}

0 commit comments

Comments
 (0)