Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 2 additions & 4 deletions docs/developer-guide/internals/execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,8 @@ pub trait ExecuteParentKernel<V: VTable> {
) -> VortexResult<Option<ArrayRef>>;
}

pub fn initialize(session: &VortexSession) {
session
.kernels()
.register_execute_parent_kernel(parent_id, Child, Kernel);
pub fn initialize(session: &mut VortexSessionBuilder) {
builder_kernels(session).register_execute_parent_kernel(parent_id, Child, Kernel);
}
```

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guide/internals/session.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ let session = VortexSession::default();
```

For tests or specialized use-cases, sessions can be assembled from individual components using
the `.with::<T>()` builder:
`VortexSession::builder()`:

```rust
let session = VortexSession::builder()
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/benches/alp_compress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ const BENCH_ARGS: &[(usize, f64, f64)] = &[
];

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
vortex_alp::initialize(&session);
session
let mut builder = vortex_array::default_session_builder();
vortex_alp::initialize(&mut builder);
builder.build()
});

#[divan::bench(types = [f32, f64], args = BENCH_ARGS)]
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -482,9 +482,9 @@ mod tests {
use crate::decompress_into_array;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[rstest]
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp/compress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ mod tests {
use crate::decompress_into_array;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[test]
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp/compute/between.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ mod tests {
use crate::alp_encode;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

fn assert_between(
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp/compute/cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ mod tests {
use crate::alp_encode;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[test]
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp/compute/compare.rs
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,9 @@ mod tests {
use crate::alp_encode;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

fn test_alp_compare<F: ALPFloat + Into<Scalar>>(
Expand Down
4 changes: 2 additions & 2 deletions encodings/alp/src/alp/compute/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ mod test {
use vortex_array::ArrayRef;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::compute::conformance::filter::test_filter_conformance;
use vortex_array::default_session_builder;
use vortex_buffer::buffer;

use crate::alp_encode;
Expand All @@ -62,7 +62,7 @@ mod test {
11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0
].into_array())]
fn test_filter_alp_conformance(#[case] array: ArrayRef) {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let array_primitive = array.execute::<PrimitiveArray>(&mut ctx).unwrap();
let alp = alp_encode(array_primitive.as_view(), None, &mut ctx).unwrap();
test_filter_conformance(&alp.into_array());
Expand Down
8 changes: 4 additions & 4 deletions encodings/alp/src/alp/compute/mask.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ mod test {
use rstest::rstest;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::BoolArray;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::compute::conformance::mask::test_mask_conformance;
use vortex_array::default_session_builder;
use vortex_array::dtype::Nullability;
use vortex_array::scalar_fn::fns::mask::MaskKernel;
use vortex_buffer::buffer;
Expand All @@ -78,7 +78,7 @@ mod test {
1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0
].into_array())]
fn test_mask_alp_conformance(#[case] array: vortex_array::ArrayRef) {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let array_primitive = array.execute::<PrimitiveArray>(&mut ctx).unwrap();
let alp = alp_encode(array_primitive.as_view(), None, &mut ctx).unwrap();
test_mask_conformance(&alp.into_array());
Expand All @@ -87,7 +87,7 @@ mod test {
#[test]
fn test_mask_alp_with_patches() {
use std::f64::consts::PI;
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
// PI doesn't encode cleanly with ALP, so it creates patches.
let values: Vec<f64> = (0..100)
.map(|i| if i % 4 == 3 { PI } else { 1.0 })
Expand All @@ -100,7 +100,7 @@ mod test {

#[test]
fn test_mask_alp_with_patches_casts_surviving_patch_values_to_nullable() {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let values = PrimitiveArray::from_iter([1.234f32, f32::NAN, 2.345, f32::INFINITY, 3.456]);
let alp = alp_encode(values.as_view(), None, &mut ctx).unwrap();
assert!(alp.patches().is_some(), "expected patches");
Expand Down
32 changes: 16 additions & 16 deletions encodings/alp/src/alp/compute/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,44 +17,44 @@ mod tests {
use rstest::rstest;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::compute::conformance::binary_numeric::test_binary_numeric_array;
use vortex_array::compute::conformance::consistency::test_array_consistency;
use vortex_array::default_session_builder;
use vortex_session::VortexSession;

use crate::ALPArray;
use crate::alp_encode;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = array_session();
crate::initialize(&session);
session
let mut session = default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[rstest]
// Basic float arrays
#[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())]
#[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())]
#[case::f32_array(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::f64_array(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
// Nullable arrays
#[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())]
#[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())]
#[case::nullable_f32(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f32), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::nullable_f64(alp_encode(PrimitiveArray::from_option_iter([Some(1.1f64), None, Some(2.2), Some(3.3), None]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
// Edge cases
#[case::single_element(alp_encode(PrimitiveArray::from_iter([42.42f64]).as_view(), None, &mut array_session().create_execution_ctx()).unwrap())]
#[case::single_element(alp_encode(PrimitiveArray::from_iter([42.42f64]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
// Large arrays
#[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())]
#[case::large_f32(alp_encode(PrimitiveArray::from_iter((0..1000).map(|i| i as f32 * 0.1)).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
// Arrays with patterns
#[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())]
#[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())]
#[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 default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::close_values(alp_encode(PrimitiveArray::from_iter([100.001f64, 100.002, 100.003, 100.004, 100.005]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
fn test_alp_consistency(#[case] array: ALPArray) {
test_array_consistency(&array.into_array(), &mut SESSION.create_execution_ctx());
}

#[rstest]
#[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())]
#[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())]
#[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())]
#[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())]
#[case::f32_basic(alp_encode(PrimitiveArray::from_iter([1.23f32, 4.56, 7.89, 10.11, 12.13]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::f64_basic(alp_encode(PrimitiveArray::from_iter([100.1f64, 200.2, 300.3, 400.4, 500.5]).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::f32_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f32 * 1.5)).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
#[case::f64_large(alp_encode(PrimitiveArray::from_iter((0..100).map(|i| i as f64 * 2.5)).as_view(), None, &mut default_session_builder().build().create_execution_ctx()).unwrap())]
fn test_alp_binary_numeric(#[case] array: ALPArray) {
test_binary_numeric_array(&array.into_array(), &mut SESSION.create_execution_ctx());
}
Expand Down
4 changes: 2 additions & 2 deletions encodings/alp/src/alp/compute/take.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ mod test {
use rstest::rstest;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::compute::conformance::take::test_take_conformance;
use vortex_array::default_session_builder;
use vortex_buffer::buffer;

use crate::alp_encode;
Expand All @@ -56,7 +56,7 @@ mod test {
#[case(PrimitiveArray::from_option_iter([Some(1.1f32), None, Some(2.2), Some(3.3), None]).into_array())]
#[case(buffer![42.42f64].into_array())]
fn test_take_alp_conformance(#[case] array: vortex_array::ArrayRef) {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let array_primitive = array.execute::<PrimitiveArray>(&mut ctx).unwrap();
let alp = alp_encode(array_primitive.as_view(), None, &mut ctx).unwrap();
test_take_conformance(&alp.into_array());
Expand Down
4 changes: 2 additions & 2 deletions encodings/alp/src/alp/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,11 @@ use vortex_array::dtype::NativePType;
use vortex_array::scalar::PValue;
use vortex_buffer::Buffer;
use vortex_buffer::BufferMut;
use vortex_session::VortexSession;
use vortex_session::VortexSessionBuilder;

const SAMPLE_SIZE: usize = 32;

pub(crate) fn initialize(session: &VortexSession) {
pub(crate) fn initialize(session: &mut VortexSessionBuilder) {
rules::initialize(session);
}

Expand Down
2 changes: 1 addition & 1 deletion encodings/alp/src/alp/plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ mod tests {
use crate::alp_encode;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
let session = vortex_array::default_session_builder().build();
session.arrays().register(ALPPatchedPlugin);
session
});
Expand Down
8 changes: 4 additions & 4 deletions encodings/alp/src/alp/rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use vortex_array::arrays::Slice;
use vortex_array::arrays::dict::TakeExecuteAdaptor;
use vortex_array::arrays::filter::FilterExecuteAdaptor;
use vortex_array::arrays::slice::SliceExecuteAdaptor;
use vortex_array::optimizer::kernels::ArrayKernelsExt;
use vortex_array::optimizer::kernels::builder_kernels;
use vortex_array::optimizer::rules::ParentRuleSet;
use vortex_array::scalar_fn::ScalarFnVTable;
use vortex_array::scalar_fn::fns::between::BetweenReduceAdaptor;
Expand All @@ -18,12 +18,12 @@ use vortex_array::scalar_fn::fns::cast::CastReduceAdaptor;
use vortex_array::scalar_fn::fns::mask::Mask;
use vortex_array::scalar_fn::fns::mask::MaskExecuteAdaptor;
use vortex_array::scalar_fn::fns::mask::MaskReduceAdaptor;
use vortex_session::VortexSession;
use vortex_session::VortexSessionBuilder;

use crate::ALP;

pub(super) fn initialize(session: &VortexSession) {
let kernels = session.kernels();
pub(super) fn initialize(session: &mut VortexSessionBuilder) {
let kernels = builder_kernels(session);
kernels.register_execute_parent_kernel(Binary.id(), ALP, CompareExecuteAdaptor(ALP));
kernels.register_execute_parent_kernel(Filter.id(), ALP, FilterExecuteAdaptor(ALP));
kernels.register_execute_parent_kernel(Mask.id(), ALP, MaskExecuteAdaptor(ALP));
Expand Down
6 changes: 3 additions & 3 deletions encodings/alp/src/alp_rd/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -638,9 +638,9 @@ mod test {
use crate::alp_rd;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = vortex_array::array_session();
crate::initialize(&session);
session
let mut session = vortex_array::default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[rstest]
Expand Down
16 changes: 8 additions & 8 deletions encodings/alp/src/alp_rd/compute/cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ mod tests {
use rstest::rstest;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::builtins::ArrayBuiltins;
use vortex_array::compute::conformance::cast::test_cast_conformance;
use vortex_array::default_session_builder;
use vortex_array::dtype::DType;
use vortex_array::dtype::Nullability;
use vortex_array::dtype::PType;
Expand All @@ -63,7 +63,7 @@ mod tests {

#[test]
fn test_cast_alprd_f32_to_f64() {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let values = vec![1.0f32, 1.1, 1.2, 1.3, 1.4];
let arr = PrimitiveArray::from_iter(values.clone());
let encoder = RDEncoder::new(&values);
Expand All @@ -87,7 +87,7 @@ mod tests {

#[test]
fn test_cast_alprd_nullable() {
let mut ctx = array_session().create_execution_ctx();
let mut ctx = default_session_builder().build().create_execution_ctx();
let arr =
PrimitiveArray::from_option_iter([Some(10.0f64), None, Some(10.1), Some(10.2), None]);
let values = vec![10.0f64, 10.1, 10.2];
Expand Down Expand Up @@ -122,31 +122,31 @@ mod tests {
let values = vec![1.23f32, 4.56, 7.89, 10.11, 12.13];
let arr = PrimitiveArray::from_iter(values.clone());
let encoder = RDEncoder::new(&values);
encoder.encode(arr.as_view(), &mut array_session().create_execution_ctx())
encoder.encode(arr.as_view(), &mut default_session_builder().build().create_execution_ctx())
})]
#[case::f64({
let values = vec![100.1f64, 200.2, 300.3, 400.4, 500.5];
let arr = PrimitiveArray::from_iter(values.clone());
let encoder = RDEncoder::new(&values);
encoder.encode(arr.as_view(), &mut array_session().create_execution_ctx())
encoder.encode(arr.as_view(), &mut default_session_builder().build().create_execution_ctx())
})]
#[case::single({
let values = vec![42.42f64];
let arr = PrimitiveArray::from_iter(values.clone());
let encoder = RDEncoder::new(&values);
encoder.encode(arr.as_view(), &mut array_session().create_execution_ctx())
encoder.encode(arr.as_view(), &mut default_session_builder().build().create_execution_ctx())
})]
#[case::negative({
let values = vec![0.0f32, -1.5, 2.5, -3.5, 4.5];
let arr = PrimitiveArray::from_iter(values.clone());
let encoder = RDEncoder::new(&values);
encoder.encode(arr.as_view(), &mut array_session().create_execution_ctx())
encoder.encode(arr.as_view(), &mut default_session_builder().build().create_execution_ctx())
})]
#[case::nullable({
let arr = PrimitiveArray::from_option_iter([Some(1.1f32), None, Some(2.2), Some(3.3), None]);
let values = vec![1.1f32, 2.2, 3.3];
let encoder = RDEncoder::new(&values);
encoder.encode(arr.as_view(), &mut array_session().create_execution_ctx())
encoder.encode(arr.as_view(), &mut default_session_builder().build().create_execution_ctx())
})]
fn test_cast_alprd_conformance(#[case] alprd: crate::alp_rd::ALPRDArray) {
test_cast_conformance(&alprd.into_array());
Expand Down
8 changes: 4 additions & 4 deletions encodings/alp/src/alp_rd/compute/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ mod test {
use rstest::rstest;
use vortex_array::IntoArray;
use vortex_array::VortexSessionExecute;
use vortex_array::array_session;
use vortex_array::arrays::PrimitiveArray;
use vortex_array::assert_arrays_eq;
use vortex_array::compute::conformance::filter::test_filter_conformance;
use vortex_array::default_session_builder;
use vortex_array::validity::Validity;
use vortex_buffer::buffer;
use vortex_mask::Mask;
Expand All @@ -60,9 +60,9 @@ mod test {
use crate::RDEncoder;

static SESSION: LazyLock<VortexSession> = LazyLock::new(|| {
let session = array_session();
crate::initialize(&session);
session
let mut session = default_session_builder();
crate::initialize(&mut session);
session.build()
});

#[rstest]
Expand Down
Loading
Loading