Skip to content

Commit 2cc2368

Browse files
clauderobert3005
authored andcommitted
Back VortexSession with ArcSwap for mutable but less errorprone session
Signed-off-by: Robert Kruszewski <github@robertk.io>
1 parent 79c6b0f commit 2cc2368

62 files changed

Lines changed: 728 additions & 441 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.

docs/developer-guide/internals/execution.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,10 @@ pub trait ExecuteParentKernel<V: VTable> {
133133
}
134134

135135
pub fn initialize(session: &VortexSession) {
136-
session
137-
.kernels()
138-
.register_execute_parent_kernel(parent_id, Child, Kernel);
136+
let Some(kernels) = session.kernels() else {
137+
return;
138+
};
139+
kernels.register_execute_parent_kernel(parent_id, Child, Kernel);
139140
}
140141
```
141142

docs/developer-guide/internals/session.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,13 @@ all built-in components and encodings:
9595
let session = VortexSession::default();
9696
```
9797

98-
For tests or specialized use-cases, sessions can be assembled from individual components using
99-
the `.with::<T>()` builder:
98+
For tests or specialized use-cases, sessions can be assembled from individual components by
99+
starting from an empty session and chaining the `.with::<T>()` helpers:
100100

101101
```rust
102-
let session = VortexSession::builder()
102+
let session = VortexSession::empty()
103103
.with::<ArraySession>()
104104
.with::<LayoutSession>()
105105
.with::<ScalarFnSession>()
106-
.with::<RuntimeSession>()
107-
.build();
106+
.with::<RuntimeSession>();
108107
```

encodings/alp/src/alp/rules.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ use vortex_session::VortexSession;
2323
use crate::ALP;
2424

2525
pub(super) fn initialize(session: &VortexSession) {
26-
let kernels = session.kernels();
26+
let Some(kernels) = session.kernels() else {
27+
return;
28+
};
2729
kernels.register_execute_parent_kernel(Binary.id(), ALP, CompareExecuteAdaptor(ALP));
2830
kernels.register_execute_parent_kernel(Filter.id(), ALP, FilterExecuteAdaptor(ALP));
2931
kernels.register_execute_parent_kernel(Mask.id(), ALP, MaskExecuteAdaptor(ALP));

encodings/alp/src/alp_rd/kernel.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ use vortex_session::VortexSession;
1414
use crate::alp_rd::ALPRD;
1515

1616
pub(crate) fn initialize(session: &VortexSession) {
17-
let kernels = session.kernels();
17+
let Some(kernels) = session.kernels() else {
18+
return;
19+
};
1820
kernels.register_execute_parent_kernel(Slice.id(), ALPRD, SliceExecuteAdaptor(ALPRD));
1921
kernels.register_execute_parent_kernel(Filter.id(), ALPRD, FilterExecuteAdaptor(ALPRD));
2022
kernels.register_execute_parent_kernel(Dict.id(), ALPRD, TakeExecuteAdaptor(ALPRD));

encodings/bytebool/src/kernel.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ use vortex_session::VortexSession;
1515
use crate::ByteBool;
1616

1717
pub(crate) fn initialize(session: &VortexSession) {
18-
let kernels = session.kernels();
18+
let Some(kernels) = session.kernels() else {
19+
return;
20+
};
1921
kernels.register_execute_parent_kernel(Binary.id(), ByteBool, BooleanExecuteAdaptor(ByteBool));
2022
kernels.register_execute_parent_kernel(Cast.id(), ByteBool, CastExecuteAdaptor(ByteBool));
2123
kernels.register_execute_parent_kernel(Dict.id(), ByteBool, TakeExecuteAdaptor(ByteBool));

encodings/datetime-parts/src/compute/kernel.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ use vortex_session::VortexSession;
1313
use crate::DateTimeParts;
1414

1515
pub(crate) fn initialize(session: &VortexSession) {
16-
let kernels = session.kernels();
16+
let Some(kernels) = session.kernels() else {
17+
return;
18+
};
1719
kernels.register_execute_parent_kernel(
1820
Binary.id(),
1921
DateTimeParts,

encodings/decimal-byte-parts/src/decimal_byte_parts/compute/kernel.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ use vortex_session::VortexSession;
1313
use crate::DecimalByteParts;
1414

1515
pub(crate) fn initialize(session: &VortexSession) {
16-
let kernels = session.kernels();
16+
let Some(kernels) = session.kernels() else {
17+
return;
18+
};
1719
kernels.register_execute_parent_kernel(
1820
Binary.id(),
1921
DecimalByteParts,

encodings/experimental/onpair/src/kernel.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ use crate::OnPair;
1616

1717
// TODO: implement ListExecute & TakeExecute for OnPair
1818
pub(super) fn initialize(session: &VortexSession) {
19-
let kernels = session.kernels();
19+
let Some(kernels) = session.kernels() else {
20+
return;
21+
};
2022
kernels.register_execute_parent_kernel(Filter.id(), OnPair, FilterExecuteAdaptor(OnPair));
2123
kernels.register_execute_parent_kernel(Binary.id(), OnPair, CompareExecuteAdaptor(OnPair));
2224
kernels.register_execute_parent_kernel(

encodings/fastlanes/src/bitpacking/vtable/kernels.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ use vortex_session::VortexSession;
2121
use crate::BitPacked;
2222

2323
pub(crate) fn initialize(session: &VortexSession) {
24-
let kernels = session.kernels();
24+
let Some(kernels) = session.kernels() else {
25+
return;
26+
};
2527
kernels.register_execute_parent_kernel(
2628
Between.id(),
2729
BitPacked,

0 commit comments

Comments
 (0)