Skip to content

Commit b522202

Browse files
committed
rebase
Signed-off-by: Robert Kruszewski <github@robertk.io>
1 parent cdb4b6b commit b522202

2 files changed

Lines changed: 31 additions & 28 deletions

File tree

vortex-array/src/aggregate_fn/fns/all_non_distinct/variant.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
// SPDX-FileCopyrightText: Copyright the Vortex contributors
33

44
use vortex_error::VortexResult;
5-
use crate::aggregate_fn::fns::all_non_distinct::all_non_distinct;
5+
66
use crate::ExecutionCtx;
7+
use crate::aggregate_fn::fns::all_non_distinct::all_non_distinct;
78
use crate::arrays::VariantArray;
89
use crate::arrays::variant::VariantArrayExt;
910

vortex-array/src/aggregate_fn/fns/count/grouped.rs

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,14 @@ mod tests {
9191
use vortex_error::VortexResult;
9292

9393
use crate::ArrayRef;
94+
use crate::ExecutionCtx;
9495
use crate::IntoArray;
95-
use crate::LEGACY_SESSION;
9696
use crate::VortexSessionExecute;
9797
use crate::aggregate_fn::DynGroupedAccumulator;
9898
use crate::aggregate_fn::GroupedAccumulator;
9999
use crate::aggregate_fn::NumericalAggregateOpts;
100100
use crate::aggregate_fn::fns::count::Count;
101+
use crate::array_session;
101102
use crate::arrays::FixedSizeListArray;
102103
use crate::arrays::ListViewArray;
103104
use crate::arrays::PrimitiveArray;
@@ -110,13 +111,17 @@ mod tests {
110111
use crate::validity::Validity;
111112

112113
/// Run a grouped count through the accumulator.
113-
fn grouped_count_actual(groups: &ArrayRef, elem_dtype: &DType) -> VortexResult<ArrayRef> {
114+
fn grouped_count_actual(
115+
groups: &ArrayRef,
116+
elem_dtype: &DType,
117+
ctx: &mut ExecutionCtx,
118+
) -> VortexResult<ArrayRef> {
114119
let mut acc = GroupedAccumulator::try_new(
115120
Count,
116121
NumericalAggregateOpts::default(),
117122
elem_dtype.clone(),
118123
)?;
119-
acc.accumulate_list(groups, &mut LEGACY_SESSION.create_execution_ctx())?;
124+
acc.accumulate_list(groups, ctx)?;
120125
acc.finish()
121126
}
122127

@@ -125,7 +130,7 @@ mod tests {
125130
elements: &ArrayRef,
126131
ranges: &[(usize, usize)],
127132
) -> VortexResult<ArrayRef> {
128-
let mut ctx = LEGACY_SESSION.create_execution_ctx();
133+
let mut ctx = array_session().create_execution_ctx();
129134
let counts: Buffer<u64> = ranges
130135
.iter()
131136
.map(|&(offset, size)| {
@@ -151,49 +156,46 @@ mod tests {
151156

152157
#[test]
153158
fn listview_counts_all_valid() -> VortexResult<()> {
154-
let assertion_session = crate::array_session();
155-
let mut assertion_ctx = assertion_session.create_execution_ctx();
159+
let mut ctx = array_session().create_execution_ctx();
156160
let elements =
157161
PrimitiveArray::new(buffer![1i32, 2, 3, 4, 5, 6], Validity::NonNullable).into_array();
158162
let elem_dtype = DType::Primitive(PType::I32, NonNullable);
159163
let ranges = [(0, 2), (2, 1), (3, 3), (6, 0)];
160164

161165
let groups = listview(elements.clone(), &ranges)?;
162-
let actual = grouped_count_actual(&groups, &elem_dtype)?;
166+
let actual = grouped_count_actual(&groups, &elem_dtype, &mut ctx)?;
163167
let expected = grouped_count_reference(&elements, &ranges)?;
164168

165169
let direct =
166170
PrimitiveArray::new(buffer![2u64, 1, 3, 0], Validity::NonNullable).into_array();
167-
assert_arrays_eq!(&actual, &direct, &mut assertion_ctx);
168-
assert_arrays_eq!(&actual, &expected, &mut assertion_ctx);
171+
assert_arrays_eq!(&actual, &direct, &mut ctx);
172+
assert_arrays_eq!(&actual, &expected, &mut ctx);
169173
Ok(())
170174
}
171175

172176
#[test]
173177
fn listview_counts_with_nulls() -> VortexResult<()> {
174-
let assertion_session = crate::array_session();
175-
let mut assertion_ctx = assertion_session.create_execution_ctx();
178+
let mut ctx = array_session().create_execution_ctx();
176179
let elements =
177180
PrimitiveArray::from_option_iter([Some(1i32), None, Some(3), None, None, Some(9)])
178181
.into_array();
179182
let elem_dtype = DType::Primitive(PType::I32, Nullable);
180183
let ranges = [(0, 3), (3, 2), (5, 1)];
181184

182185
let groups = listview(elements.clone(), &ranges)?;
183-
let actual = grouped_count_actual(&groups, &elem_dtype)?;
186+
let actual = grouped_count_actual(&groups, &elem_dtype, &mut ctx)?;
184187
let expected = grouped_count_reference(&elements, &ranges)?;
185188

186189
// Group 0: {1, null, 3} -> 2. Group 1: {null, null} -> 0. Group 2: {9} -> 1.
187190
let direct = PrimitiveArray::new(buffer![2u64, 0, 1], Validity::NonNullable).into_array();
188-
assert_arrays_eq!(&actual, &direct, &mut assertion_ctx);
189-
assert_arrays_eq!(&actual, &expected, &mut assertion_ctx);
191+
assert_arrays_eq!(&actual, &direct, &mut ctx);
192+
assert_arrays_eq!(&actual, &expected, &mut ctx);
190193
Ok(())
191194
}
192195

193196
#[test]
194197
fn listview_counts_varbinview_with_nulls() -> VortexResult<()> {
195-
let assertion_session = crate::array_session();
196-
let mut assertion_ctx = assertion_session.create_execution_ctx();
198+
let mut ctx = array_session().create_execution_ctx();
197199
let elements = VarBinViewArray::from_iter_nullable_str([
198200
Some("a"),
199201
None,
@@ -206,17 +208,18 @@ mod tests {
206208
let ranges = [(0, 2), (2, 2), (4, 1)];
207209

208210
let groups = listview(elements.clone(), &ranges)?;
209-
let actual = grouped_count_actual(&groups, &elem_dtype)?;
211+
let actual = grouped_count_actual(&groups, &elem_dtype, &mut ctx)?;
210212
let expected = grouped_count_reference(&elements, &ranges)?;
211213

212214
let direct = PrimitiveArray::new(buffer![1u64, 1, 1], Validity::NonNullable).into_array();
213-
assert_arrays_eq!(&actual, &direct, &mut assertion_ctx);
214-
assert_arrays_eq!(&actual, &expected, &mut assertion_ctx);
215+
assert_arrays_eq!(&actual, &direct, &mut ctx);
216+
assert_arrays_eq!(&actual, &expected, &mut ctx);
215217
Ok(())
216218
}
217219

218220
#[test]
219221
fn fixed_size_counts_float_nans() -> VortexResult<()> {
222+
let mut ctx = array_session().create_execution_ctx();
220223
let elements =
221224
PrimitiveArray::from_option_iter([Some(1.0f64), Some(f64::NAN), None, Some(2.0)])
222225
.into_array();
@@ -225,32 +228,31 @@ mod tests {
225228
FixedSizeListArray::try_new(elements, 2, Validity::NonNullable, 2)?.into_array();
226229

227230
// NaNs are excluded by default and counted otherwise.
228-
let actual = grouped_count_actual(&groups, &elem_dtype)?;
231+
let actual = grouped_count_actual(&groups, &elem_dtype, &mut ctx)?;
229232
let expected = PrimitiveArray::new(buffer![1u64, 1], Validity::NonNullable).into_array();
230-
assert_arrays_eq!(&actual, &expected);
233+
assert_arrays_eq!(&actual, &expected, &mut ctx);
231234

232235
let mut acc =
233236
GroupedAccumulator::try_new(Count, NumericalAggregateOpts::include_nans(), elem_dtype)?;
234-
acc.accumulate_list(&groups, &mut LEGACY_SESSION.create_execution_ctx())?;
237+
acc.accumulate_list(&groups, &mut ctx)?;
235238
let actual = acc.finish()?;
236239
let expected = PrimitiveArray::new(buffer![2u64, 1], Validity::NonNullable).into_array();
237-
assert_arrays_eq!(&actual, &expected);
240+
assert_arrays_eq!(&actual, &expected, &mut ctx);
238241
Ok(())
239242
}
240243

241244
#[test]
242245
fn fixed_size_counts_with_nulls() -> VortexResult<()> {
243-
let assertion_session = crate::array_session();
244-
let mut assertion_ctx = assertion_session.create_execution_ctx();
246+
let mut ctx = array_session().create_execution_ctx();
245247
let elements =
246248
PrimitiveArray::from_option_iter([Some(1i32), None, Some(3), Some(4)]).into_array();
247249
let elem_dtype = DType::Primitive(PType::I32, Nullable);
248250
let groups =
249251
FixedSizeListArray::try_new(elements, 2, Validity::NonNullable, 2)?.into_array();
250252

251-
let actual = grouped_count_actual(&groups, &elem_dtype)?;
253+
let actual = grouped_count_actual(&groups, &elem_dtype, &mut ctx)?;
252254
let direct = PrimitiveArray::new(buffer![1u64, 2], Validity::NonNullable).into_array();
253-
assert_arrays_eq!(&actual, &direct, &mut assertion_ctx);
255+
assert_arrays_eq!(&actual, &direct, &mut ctx);
254256
Ok(())
255257
}
256258
}

0 commit comments

Comments
 (0)