Skip to content

Commit 0b75700

Browse files
feat[array]: change VTable execution to pass owned arrays (#6867)
We want to be able to mutate buffers in-place this is done trying to unwrap Arcs, requiring owned Arc<Array> inputs. This PR add owned execution. ```rust fn execute(&self, array: ArrayRef, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult>; ``` TODO: allow owned extraction of children from an owned array, this will be done using slots (#6870). --------- Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
1 parent 6efc235 commit 0b75700

56 files changed

Lines changed: 684 additions & 312 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.

encodings/alp/public-api.lock

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ impl vortex_alp::ALP
88

99
pub const vortex_alp::ALP::ID: vortex_array::vtable::dyn_::ArrayId
1010

11+
impl core::clone::Clone for vortex_alp::ALP
12+
13+
pub fn vortex_alp::ALP::clone(&self) -> vortex_alp::ALP
14+
1115
impl core::fmt::Debug for vortex_alp::ALP
1216

1317
pub fn vortex_alp::ALP::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -72,7 +76,7 @@ pub fn vortex_alp::ALP::deserialize(bytes: &[u8], _dtype: &vortex_array::dtype::
7276

7377
pub fn vortex_alp::ALP::dtype(array: &vortex_alp::ALPArray) -> &vortex_array::dtype::DType
7478

75-
pub fn vortex_alp::ALP::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
79+
pub fn vortex_alp::ALP::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
7680

7781
pub fn vortex_alp::ALP::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
7882

@@ -178,6 +182,10 @@ impl vortex_alp::ALPRD
178182

179183
pub const vortex_alp::ALPRD::ID: vortex_array::vtable::dyn_::ArrayId
180184

185+
impl core::clone::Clone for vortex_alp::ALPRD
186+
187+
pub fn vortex_alp::ALPRD::clone(&self) -> vortex_alp::ALPRD
188+
181189
impl core::fmt::Debug for vortex_alp::ALPRD
182190

183191
pub fn vortex_alp::ALPRD::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -230,7 +238,7 @@ pub fn vortex_alp::ALPRD::deserialize(bytes: &[u8], _dtype: &vortex_array::dtype
230238

231239
pub fn vortex_alp::ALPRD::dtype(array: &vortex_alp::ALPRDArray) -> &vortex_array::dtype::DType
232240

233-
pub fn vortex_alp::ALPRD::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
241+
pub fn vortex_alp::ALPRD::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
234242

235243
pub fn vortex_alp::ALPRD::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
236244

encodings/alp/src/alp/array.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33

44
use std::fmt::Debug;
55
use std::hash::Hash;
6+
use std::sync::Arc;
67

78
use vortex_array::ArrayEq;
89
use vortex_array::ArrayHash;
910
use vortex_array::ArrayRef;
1011
use vortex_array::DeserializeMetadata;
1112
use vortex_array::DynArray;
1213
use vortex_array::ExecutionCtx;
13-
use vortex_array::ExecutionStep;
14+
use vortex_array::ExecutionResult;
1415
use vortex_array::IntoArray;
1516
use vortex_array::Precision;
1617
use vortex_array::ProstMetadata;
@@ -239,10 +240,10 @@ impl VTable for ALP {
239240
Ok(())
240241
}
241242

242-
fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
243-
// TODO(joe): take by value
244-
Ok(ExecutionStep::Done(
245-
execute_decompress(array.clone(), ctx)?.into_array(),
243+
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
244+
let array = Arc::try_unwrap(array).unwrap_or_else(|arc| (*arc).clone());
245+
Ok(ExecutionResult::done(
246+
execute_decompress(array, ctx)?.into_array(),
246247
))
247248
}
248249

@@ -273,7 +274,7 @@ pub struct ALPArray {
273274
stats_set: ArrayStats,
274275
}
275276

276-
#[derive(Debug)]
277+
#[derive(Clone, Debug)]
277278
pub struct ALP;
278279

279280
impl ALP {

encodings/alp/src/alp_rd/array.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
use std::fmt::Debug;
55
use std::hash::Hash;
6+
use std::sync::Arc;
67

78
use itertools::Itertools;
89
use vortex_array::ArrayEq;
@@ -11,7 +12,7 @@ use vortex_array::ArrayRef;
1112
use vortex_array::DeserializeMetadata;
1213
use vortex_array::DynArray;
1314
use vortex_array::ExecutionCtx;
14-
use vortex_array::ExecutionStep;
15+
use vortex_array::ExecutionResult;
1516
use vortex_array::IntoArray;
1617
use vortex_array::Precision;
1718
use vortex_array::ProstMetadata;
@@ -300,7 +301,7 @@ impl VTable for ALPRD {
300301
Ok(())
301302
}
302303

303-
fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
304+
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
304305
let left_parts = array.left_parts().clone().execute::<PrimitiveArray>(ctx)?;
305306
let right_parts = array.right_parts().clone().execute::<PrimitiveArray>(ctx)?;
306307

@@ -339,7 +340,7 @@ impl VTable for ALPRD {
339340
)
340341
};
341342

342-
Ok(ExecutionStep::Done(decoded_array.into_array()))
343+
Ok(ExecutionResult::done(decoded_array.into_array()))
343344
}
344345

345346
fn reduce_parent(
@@ -371,7 +372,7 @@ pub struct ALPRDArray {
371372
stats_set: ArrayStats,
372373
}
373374

374-
#[derive(Debug)]
375+
#[derive(Clone, Debug)]
375376
pub struct ALPRD;
376377

377378
impl ALPRD {

encodings/bytebool/public-api.lock

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ impl vortex_bytebool::ByteBool
66

77
pub const vortex_bytebool::ByteBool::ID: vortex_array::vtable::dyn_::ArrayId
88

9+
impl core::clone::Clone for vortex_bytebool::ByteBool
10+
11+
pub fn vortex_bytebool::ByteBool::clone(&self) -> vortex_bytebool::ByteBool
12+
913
impl core::fmt::Debug for vortex_bytebool::ByteBool
1014

1115
pub fn vortex_bytebool::ByteBool::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -54,7 +58,7 @@ pub fn vortex_bytebool::ByteBool::deserialize(_bytes: &[u8], _dtype: &vortex_arr
5458

5559
pub fn vortex_bytebool::ByteBool::dtype(array: &vortex_bytebool::ByteBoolArray) -> &vortex_array::dtype::DType
5660

57-
pub fn vortex_bytebool::ByteBool::execute(array: &Self::Array, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
61+
pub fn vortex_bytebool::ByteBool::execute(array: alloc::sync::Arc<Self::Array>, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
5862

5963
pub fn vortex_bytebool::ByteBool::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
6064

encodings/bytebool/src/array.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33

44
use std::fmt::Debug;
55
use std::hash::Hash;
6+
use std::sync::Arc;
67

78
use vortex_array::ArrayEq;
89
use vortex_array::ArrayHash;
910
use vortex_array::ArrayRef;
1011
use vortex_array::EmptyMetadata;
1112
use vortex_array::ExecutionCtx;
12-
use vortex_array::ExecutionStep;
13+
use vortex_array::ExecutionResult;
1314
use vortex_array::IntoArray;
1415
use vortex_array::Precision;
1516
use vortex_array::arrays::BoolArray;
@@ -187,10 +188,10 @@ impl VTable for ByteBool {
187188
crate::rules::RULES.evaluate(array, parent, child_idx)
188189
}
189190

190-
fn execute(array: &Self::Array, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
191+
fn execute(array: Arc<Self::Array>, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
191192
let boolean_buffer = BitBuffer::from(array.as_slice());
192193
let validity = array.validity().clone();
193-
Ok(ExecutionStep::Done(
194+
Ok(ExecutionResult::done(
194195
BoolArray::new(boolean_buffer, validity).into_array(),
195196
))
196197
}
@@ -213,7 +214,7 @@ pub struct ByteBoolArray {
213214
stats_set: ArrayStats,
214215
}
215216

216-
#[derive(Debug)]
217+
#[derive(Clone, Debug)]
217218
pub struct ByteBool;
218219

219220
impl ByteBool {

encodings/datetime-parts/public-api.lock

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ impl vortex_datetime_parts::DateTimeParts
66

77
pub const vortex_datetime_parts::DateTimeParts::ID: vortex_array::vtable::dyn_::ArrayId
88

9+
impl core::clone::Clone for vortex_datetime_parts::DateTimeParts
10+
11+
pub fn vortex_datetime_parts::DateTimeParts::clone(&self) -> vortex_datetime_parts::DateTimeParts
12+
913
impl core::fmt::Debug for vortex_datetime_parts::DateTimeParts
1014

1115
pub fn vortex_datetime_parts::DateTimeParts::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -62,7 +66,7 @@ pub fn vortex_datetime_parts::DateTimeParts::deserialize(bytes: &[u8], _dtype: &
6266

6367
pub fn vortex_datetime_parts::DateTimeParts::dtype(array: &vortex_datetime_parts::DateTimePartsArray) -> &vortex_array::dtype::DType
6468

65-
pub fn vortex_datetime_parts::DateTimeParts::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
69+
pub fn vortex_datetime_parts::DateTimeParts::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
6670

6771
pub fn vortex_datetime_parts::DateTimeParts::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
6872

encodings/datetime-parts/src/array.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33

44
use std::fmt::Debug;
55
use std::hash::Hash;
6+
use std::sync::Arc;
67

78
use vortex_array::ArrayEq;
89
use vortex_array::ArrayHash;
910
use vortex_array::ArrayRef;
1011
use vortex_array::DeserializeMetadata;
1112
use vortex_array::DynArray;
1213
use vortex_array::ExecutionCtx;
13-
use vortex_array::ExecutionStep;
14+
use vortex_array::ExecutionResult;
1415
use vortex_array::IntoArray;
1516
use vortex_array::Precision;
1617
use vortex_array::ProstMetadata;
@@ -226,9 +227,9 @@ impl VTable for DateTimeParts {
226227
Ok(())
227228
}
228229

229-
fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
230-
Ok(ExecutionStep::Done(
231-
decode_to_temporal(array, ctx)?.into_array(),
230+
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
231+
Ok(ExecutionResult::done(
232+
decode_to_temporal(&array, ctx)?.into_array(),
232233
))
233234
}
234235

@@ -267,7 +268,7 @@ pub struct DateTimePartsArrayParts {
267268
pub subseconds: ArrayRef,
268269
}
269270

270-
#[derive(Debug)]
271+
#[derive(Clone, Debug)]
271272
pub struct DateTimeParts;
272273

273274
impl DateTimeParts {

encodings/decimal-byte-parts/public-api.lock

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ impl vortex_decimal_byte_parts::DecimalByteParts
66

77
pub const vortex_decimal_byte_parts::DecimalByteParts::ID: vortex_array::vtable::dyn_::ArrayId
88

9+
impl core::clone::Clone for vortex_decimal_byte_parts::DecimalByteParts
10+
11+
pub fn vortex_decimal_byte_parts::DecimalByteParts::clone(&self) -> vortex_decimal_byte_parts::DecimalByteParts
12+
913
impl core::fmt::Debug for vortex_decimal_byte_parts::DecimalByteParts
1014

1115
pub fn vortex_decimal_byte_parts::DecimalByteParts::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -62,7 +66,7 @@ pub fn vortex_decimal_byte_parts::DecimalByteParts::deserialize(bytes: &[u8], _d
6266

6367
pub fn vortex_decimal_byte_parts::DecimalByteParts::dtype(array: &vortex_decimal_byte_parts::DecimalBytePartsArray) -> &vortex_array::dtype::DType
6468

65-
pub fn vortex_decimal_byte_parts::DecimalByteParts::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
69+
pub fn vortex_decimal_byte_parts::DecimalByteParts::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
6670

6771
pub fn vortex_decimal_byte_parts::DecimalByteParts::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
6872

encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ mod rules;
66
mod slice;
77

88
use std::hash::Hash;
9+
use std::sync::Arc;
910

1011
use prost::Message as _;
1112
use vortex_array::ArrayEq;
1213
use vortex_array::ArrayHash;
1314
use vortex_array::ArrayRef;
1415
use vortex_array::DynArray;
1516
use vortex_array::ExecutionCtx;
16-
use vortex_array::ExecutionStep;
17+
use vortex_array::ExecutionResult;
1718
use vortex_array::IntoArray;
1819
use vortex_array::Precision;
1920
use vortex_array::ProstMetadata;
@@ -194,8 +195,8 @@ impl VTable for DecimalByteParts {
194195
PARENT_RULES.evaluate(array, parent, child_idx)
195196
}
196197

197-
fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
198-
to_canonical_decimal(array, ctx).map(ExecutionStep::Done)
198+
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
199+
to_canonical_decimal(&array, ctx).map(ExecutionResult::done)
199200
}
200201

201202
fn execute_parent(
@@ -274,7 +275,7 @@ impl DecimalBytePartsArray {
274275
}
275276
}
276277

277-
#[derive(Debug)]
278+
#[derive(Clone, Debug)]
278279
pub struct DecimalByteParts;
279280

280281
impl DecimalByteParts {

encodings/fastlanes/public-api.lock

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ impl vortex_fastlanes::BitPacked
126126

127127
pub const vortex_fastlanes::BitPacked::ID: vortex_array::vtable::dyn_::ArrayId
128128

129+
impl core::clone::Clone for vortex_fastlanes::BitPacked
130+
131+
pub fn vortex_fastlanes::BitPacked::clone(&self) -> vortex_fastlanes::BitPacked
132+
129133
impl core::fmt::Debug for vortex_fastlanes::BitPacked
130134

131135
pub fn vortex_fastlanes::BitPacked::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -176,7 +180,7 @@ pub fn vortex_fastlanes::BitPacked::deserialize(bytes: &[u8], _dtype: &vortex_ar
176180

177181
pub fn vortex_fastlanes::BitPacked::dtype(array: &vortex_fastlanes::BitPackedArray) -> &vortex_array::dtype::DType
178182

179-
pub fn vortex_fastlanes::BitPacked::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
183+
pub fn vortex_fastlanes::BitPacked::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
180184

181185
pub fn vortex_fastlanes::BitPacked::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
182186

@@ -286,6 +290,10 @@ impl vortex_fastlanes::Delta
286290

287291
pub const vortex_fastlanes::Delta::ID: vortex_array::vtable::dyn_::ArrayId
288292

293+
impl core::clone::Clone for vortex_fastlanes::Delta
294+
295+
pub fn vortex_fastlanes::Delta::clone(&self) -> vortex_fastlanes::Delta
296+
289297
impl core::fmt::Debug for vortex_fastlanes::Delta
290298

291299
pub fn vortex_fastlanes::Delta::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -326,7 +334,7 @@ pub fn vortex_fastlanes::Delta::deserialize(bytes: &[u8], _dtype: &vortex_array:
326334

327335
pub fn vortex_fastlanes::Delta::dtype(array: &vortex_fastlanes::DeltaArray) -> &vortex_array::dtype::DType
328336

329-
pub fn vortex_fastlanes::Delta::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
337+
pub fn vortex_fastlanes::Delta::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
330338

331339
pub fn vortex_fastlanes::Delta::id(&self) -> vortex_array::vtable::dyn_::ArrayId
332340

@@ -414,6 +422,10 @@ impl vortex_fastlanes::FoR
414422

415423
pub const vortex_fastlanes::FoR::ID: vortex_array::vtable::dyn_::ArrayId
416424

425+
impl core::clone::Clone for vortex_fastlanes::FoR
426+
427+
pub fn vortex_fastlanes::FoR::clone(&self) -> vortex_fastlanes::FoR
428+
417429
impl core::fmt::Debug for vortex_fastlanes::FoR
418430

419431
pub fn vortex_fastlanes::FoR::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -466,7 +478,7 @@ pub fn vortex_fastlanes::FoR::deserialize(bytes: &[u8], dtype: &vortex_array::dt
466478

467479
pub fn vortex_fastlanes::FoR::dtype(array: &vortex_fastlanes::FoRArray) -> &vortex_array::dtype::DType
468480

469-
pub fn vortex_fastlanes::FoR::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
481+
pub fn vortex_fastlanes::FoR::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
470482

471483
pub fn vortex_fastlanes::FoR::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
472484

@@ -550,6 +562,10 @@ impl vortex_fastlanes::RLE
550562

551563
pub const vortex_fastlanes::RLE::ID: vortex_array::vtable::dyn_::ArrayId
552564

565+
impl core::clone::Clone for vortex_fastlanes::RLE
566+
567+
pub fn vortex_fastlanes::RLE::clone(&self) -> vortex_fastlanes::RLE
568+
553569
impl core::fmt::Debug for vortex_fastlanes::RLE
554570

555571
pub fn vortex_fastlanes::RLE::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
@@ -590,7 +606,7 @@ pub fn vortex_fastlanes::RLE::deserialize(bytes: &[u8], _dtype: &vortex_array::d
590606

591607
pub fn vortex_fastlanes::RLE::dtype(array: &vortex_fastlanes::RLEArray) -> &vortex_array::dtype::DType
592608

593-
pub fn vortex_fastlanes::RLE::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionStep>
609+
pub fn vortex_fastlanes::RLE::execute(array: alloc::sync::Arc<Self::Array>, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::executor::ExecutionResult>
594610

595611
pub fn vortex_fastlanes::RLE::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
596612

0 commit comments

Comments
 (0)