Skip to content
Draft
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions encodings/alp/src/alp/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -235,10 +236,10 @@ impl VTable for ALPVTable {
Ok(())
}

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

Expand Down
7 changes: 4 additions & 3 deletions encodings/alp/src/alp_rd/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use itertools::Itertools;
use vortex_array::ArrayEq;
Expand All @@ -11,7 +12,7 @@ use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -296,7 +297,7 @@ impl VTable for ALPRDVTable {
Ok(())
}

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

Expand Down Expand Up @@ -335,7 +336,7 @@ impl VTable for ALPRDVTable {
)
};

Ok(ExecutionStep::Done(decoded_array.into_array()))
Ok(ExecutionResult::done(decoded_array.into_array()))
}

fn reduce_parent(
Expand Down
7 changes: 4 additions & 3 deletions encodings/bytebool/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::EmptyMetadata;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::arrays::BoolArray;
Expand Down Expand Up @@ -183,10 +184,10 @@ impl VTable for ByteBoolVTable {
crate::rules::RULES.evaluate(array, parent, child_idx)
}

fn execute(array: &Self::Array, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
fn execute(array: Arc<Self::Array>, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
let boolean_buffer = BitBuffer::from(array.as_slice());
let validity = array.validity().clone();
Ok(ExecutionStep::Done(
Ok(ExecutionResult::done(
BoolArray::new(boolean_buffer, validity).into_array(),
))
}
Expand Down
9 changes: 5 additions & 4 deletions encodings/datetime-parts/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -222,9 +223,9 @@ impl VTable for DateTimePartsVTable {
Ok(())
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(
decode_to_temporal(array, ctx)?.into_array(),
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(
decode_to_temporal(&array, ctx)?.into_array(),
))
}

Expand Down
7 changes: 4 additions & 3 deletions encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@ mod rules;
mod slice;

use std::hash::Hash;
use std::sync::Arc;

use prost::Message as _;
use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -190,8 +191,8 @@ impl VTable for DecimalBytePartsVTable {
PARENT_RULES.evaluate(array, parent, child_idx)
}

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

fn execute_parent(
Expand Down
9 changes: 6 additions & 3 deletions encodings/fastlanes/src/bitpacking/vtable/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -354,8 +355,10 @@ impl VTable for BitPackedVTable {
})
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(unpack_array(array, ctx)?.into_array()))
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(
unpack_array(&array, ctx)?.into_array(),
))
}

fn execute_parent(
Expand Down
9 changes: 5 additions & 4 deletions encodings/fastlanes/src/delta/vtable/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use std::hash::Hash;
use std::sync::Arc;

use fastlanes::FastLanes;
use prost::Message;
use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -190,9 +191,9 @@ impl VTable for DeltaVTable {
DeltaArray::try_new(bases, deltas, metadata.0.offset as usize, len)
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(
delta_decompress(array, ctx)?.into_array(),
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(
delta_decompress(&array, ctx)?.into_array(),
))
}
}
Expand Down
7 changes: 4 additions & 3 deletions encodings/fastlanes/src/for/vtable/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::buffer::BufferHandle;
Expand Down Expand Up @@ -166,8 +167,8 @@ impl VTable for FoRVTable {
PARENT_RULES.evaluate(array, parent, child_idx)
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(decompress(array, ctx)?.into_array()))
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(decompress(&array, ctx)?.into_array()))
}

fn execute_parent(
Expand Down
9 changes: 5 additions & 4 deletions encodings/fastlanes/src/rle/vtable/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use std::hash::Hash;
use std::sync::Arc;

use prost::Message;
use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -231,9 +232,9 @@ impl VTable for RLEVTable {
PARENT_KERNELS.execute(array, parent, child_idx, ctx)
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(
rle_decompress(array, ctx)?.into_array(),
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(
rle_decompress(&array, ctx)?.into_array(),
))
}
}
Expand Down
6 changes: 3 additions & 3 deletions encodings/fsst/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use vortex_array::Canonical;
use vortex_array::DeserializeMetadata;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -339,8 +339,8 @@ impl VTable for FSSTVTable {
Ok(())
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
canonicalize_fsst(array, ctx).map(ExecutionStep::Done)
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
canonicalize_fsst(&array, ctx).map(ExecutionResult::done)
}

fn execute_parent(
Expand Down
7 changes: 4 additions & 3 deletions encodings/pco/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
use std::cmp;
use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use pco::ChunkConfig;
use pco::PagingSpec;
Expand All @@ -20,7 +21,7 @@ use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -263,8 +264,8 @@ impl VTable for PcoVTable {
Ok(())
}

fn execute(array: &Self::Array, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
Ok(ExecutionStep::Done(array.decompress()?.into_array()))
fn execute(array: Arc<Self::Array>, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
Ok(ExecutionResult::done(array.decompress()?.into_array()))
}

fn reduce_parent(
Expand Down
7 changes: 4 additions & 3 deletions encodings/runend/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use vortex_array::ArrayEq;
use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
Expand Down Expand Up @@ -203,8 +204,8 @@ impl VTable for RunEndVTable {
PARENT_KERNELS.execute(array, parent, child_idx, ctx)
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
run_end_canonicalize(array, ctx).map(ExecutionStep::Done)
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
run_end_canonicalize(&array, ctx).map(ExecutionResult::done)
}
}

Expand Down
7 changes: 4 additions & 3 deletions encodings/sequence/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use std::hash::Hash;
use std::sync::Arc;

use num_traits::cast::FromPrimitive;
use vortex_array::ArrayRef;
use vortex_array::DeserializeMetadata;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::Precision;
use vortex_array::ProstMetadata;
use vortex_array::SerializeMetadata;
Expand Down Expand Up @@ -381,8 +382,8 @@ impl VTable for SequenceVTable {
Ok(())
}

fn execute(array: &Self::Array, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
sequence_decompress(array).map(ExecutionStep::Done)
fn execute(array: Arc<Self::Array>, _ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
sequence_decompress(&array).map(ExecutionResult::done)
}

fn execute_parent(
Expand Down
7 changes: 4 additions & 3 deletions encodings/sparse/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

use std::fmt::Debug;
use std::hash::Hash;
use std::sync::Arc;

use kernel::PARENT_KERNELS;
use prost::Message as _;
Expand All @@ -11,7 +12,7 @@ use vortex_array::ArrayHash;
use vortex_array::ArrayRef;
use vortex_array::DynArray;
use vortex_array::ExecutionCtx;
use vortex_array::ExecutionStep;
use vortex_array::ExecutionResult;
use vortex_array::IntoArray;
use vortex_array::Precision;
use vortex_array::ToCanonical;
Expand Down Expand Up @@ -256,8 +257,8 @@ impl VTable for SparseVTable {
PARENT_KERNELS.execute(array, parent, child_idx, ctx)
}

fn execute(array: &Self::Array, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionStep> {
execute_sparse(array, ctx).map(ExecutionStep::Done)
fn execute(array: Arc<Self::Array>, ctx: &mut ExecutionCtx) -> VortexResult<ExecutionResult> {
execute_sparse(&array, ctx).map(ExecutionResult::done)
}
}

Expand Down
Loading
Loading