diff --git a/encodings/alp/public-api.lock b/encodings/alp/public-api.lock index 0f3259d6d6f..88a5720bf73 100644 --- a/encodings/alp/public-api.lock +++ b/encodings/alp/public-api.lock @@ -56,7 +56,7 @@ pub fn vortex_alp::ALP::validate(&self, data: &vortex_alp::ALPData, dtype: &vort impl vortex_array::array::vtable::operations::OperationsVTable for vortex_alp::ALP -pub fn vortex_alp::ALP::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_alp::ALP>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_alp::ALP::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_alp::ALP>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_alp::ALP @@ -194,7 +194,7 @@ pub fn vortex_alp::ALPRD::validate(&self, data: &vortex_alp::ALPRDData, dtype: & impl vortex_array::array::vtable::operations::OperationsVTable for vortex_alp::ALPRD -pub fn vortex_alp::ALPRD::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_alp::ALPRD>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_alp::ALPRD::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_alp::ALPRD>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_alp::ALPRD diff --git a/encodings/alp/src/alp/ops.rs b/encodings/alp/src/alp/ops.rs index dcd8cecf1d5..76b322bdbdc 100644 --- a/encodings/alp/src/alp/ops.rs +++ b/encodings/alp/src/alp/ops.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; use vortex_error::VortexExpect; @@ -15,11 +14,7 @@ use crate::ALPFloat; use crate::match_each_alp_float_ptype; impl OperationsVTable for ALP { - fn scalar_at( - array: ArrayView<'_, ALP>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ALP>, index: usize) -> VortexResult { if let Some(patches) = array.patches() && let Some(patch) = patches.get_patched(index)? { diff --git a/encodings/alp/src/alp_rd/ops.rs b/encodings/alp/src/alp_rd/ops.rs index 90f1307f59f..115746e0db9 100644 --- a/encodings/alp/src/alp_rd/ops.rs +++ b/encodings/alp/src/alp_rd/ops.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::dtype::PType; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; @@ -13,11 +12,7 @@ use crate::ALPRD; use crate::ALPRDArrayExt; impl OperationsVTable for ALPRD { - fn scalar_at( - array: ArrayView<'_, ALPRD>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ALPRD>, index: usize) -> VortexResult { // The left value can either be a direct value, or an exception. // The exceptions array represents exception positions with non-null values. let maybe_patched_value = match array.left_parts_patches() { diff --git a/encodings/bytebool/public-api.lock b/encodings/bytebool/public-api.lock index 63d9c1b9518..93522de6c7f 100644 --- a/encodings/bytebool/public-api.lock +++ b/encodings/bytebool/public-api.lock @@ -52,7 +52,7 @@ pub fn vortex_bytebool::ByteBool::validate(&self, data: &Self::ArrayData, dtype: impl vortex_array::array::vtable::operations::OperationsVTable for vortex_bytebool::ByteBool -pub fn vortex_bytebool::ByteBool::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_bytebool::ByteBool>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_bytebool::ByteBool::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_bytebool::ByteBool>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_bytebool::ByteBool diff --git a/encodings/bytebool/src/array.rs b/encodings/bytebool/src/array.rs index c1a2ebf7fce..b0e2b704398 100644 --- a/encodings/bytebool/src/array.rs +++ b/encodings/bytebool/src/array.rs @@ -319,11 +319,7 @@ impl ValidityVTable for ByteBool { } impl OperationsVTable for ByteBool { - fn scalar_at( - array: ArrayView<'_, ByteBool>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ByteBool>, index: usize) -> VortexResult { Ok(Scalar::bool( array.buffer.as_host()[index] == 1, array.dtype().nullability(), diff --git a/encodings/datetime-parts/public-api.lock b/encodings/datetime-parts/public-api.lock index 3cdc22cc7b7..74234fec440 100644 --- a/encodings/datetime-parts/public-api.lock +++ b/encodings/datetime-parts/public-api.lock @@ -50,7 +50,7 @@ pub fn vortex_datetime_parts::DateTimeParts::validate(&self, _data: &Self::Array impl vortex_array::array::vtable::operations::OperationsVTable for vortex_datetime_parts::DateTimeParts -pub fn vortex_datetime_parts::DateTimeParts::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_datetime_parts::DateTimeParts>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_datetime_parts::DateTimeParts::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_datetime_parts::DateTimeParts>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_datetime_parts::DateTimeParts diff --git a/encodings/datetime-parts/src/ops.rs b/encodings/datetime-parts/src/ops.rs index 2c224b078d5..3e13d4a7e41 100644 --- a/encodings/datetime-parts/src/ops.rs +++ b/encodings/datetime-parts/src/ops.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::dtype::DType; use vortex_array::extension::datetime::Timestamp; use vortex_array::scalar::Scalar; @@ -17,11 +16,7 @@ use crate::timestamp; use crate::timestamp::TimestampParts; impl OperationsVTable for DateTimeParts { - fn scalar_at( - array: ArrayView<'_, DateTimeParts>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, DateTimeParts>, index: usize) -> VortexResult { let DType::Extension(ext) = array.dtype().clone() else { vortex_panic!( "DateTimePartsArray must have extension dtype, found {}", diff --git a/encodings/decimal-byte-parts/public-api.lock b/encodings/decimal-byte-parts/public-api.lock index 397885e1b45..ed979ec1539 100644 --- a/encodings/decimal-byte-parts/public-api.lock +++ b/encodings/decimal-byte-parts/public-api.lock @@ -48,7 +48,7 @@ pub fn vortex_decimal_byte_parts::DecimalByteParts::validate(&self, _data: &Self impl vortex_array::array::vtable::operations::OperationsVTable for vortex_decimal_byte_parts::DecimalByteParts -pub fn vortex_decimal_byte_parts::DecimalByteParts::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_decimal_byte_parts::DecimalByteParts>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_decimal_byte_parts::DecimalByteParts::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_decimal_byte_parts::DecimalByteParts>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_decimal_byte_parts::DecimalByteParts diff --git a/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs b/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs index ea90bf575e0..5b5143e179c 100644 --- a/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs +++ b/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs @@ -300,11 +300,7 @@ fn to_canonical_decimal( } impl OperationsVTable for DecimalByteParts { - fn scalar_at( - array: ArrayView<'_, DecimalByteParts>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, DecimalByteParts>, index: usize) -> VortexResult { // TODO(joe): support parts len != 1 let scalar = array.msp().scalar_at(index)?; diff --git a/encodings/fastlanes/public-api.lock b/encodings/fastlanes/public-api.lock index 7746cd91168..08c7b347d3a 100644 --- a/encodings/fastlanes/public-api.lock +++ b/encodings/fastlanes/public-api.lock @@ -170,7 +170,7 @@ pub fn vortex_fastlanes::BitPacked::validate(&self, data: &Self::ArrayData, dtyp impl vortex_array::array::vtable::operations::OperationsVTable for vortex_fastlanes::BitPacked -pub fn vortex_fastlanes::BitPacked::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::BitPacked>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_fastlanes::BitPacked::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::BitPacked>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_fastlanes::BitPacked @@ -324,7 +324,7 @@ pub fn vortex_fastlanes::Delta::validate(&self, data: &Self::ArrayData, dtype: & impl vortex_array::array::vtable::operations::OperationsVTable for vortex_fastlanes::Delta -pub fn vortex_fastlanes::Delta::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::Delta>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_fastlanes::Delta::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::Delta>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_fastlanes::Delta @@ -414,7 +414,7 @@ pub fn vortex_fastlanes::FoR::validate(&self, data: &Self::ArrayData, dtype: &vo impl vortex_array::array::vtable::operations::OperationsVTable for vortex_fastlanes::FoR -pub fn vortex_fastlanes::FoR::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::FoR>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_fastlanes::FoR::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::FoR>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_fastlanes::FoR @@ -522,7 +522,7 @@ pub fn vortex_fastlanes::RLE::validate(&self, data: &Self::ArrayData, dtype: &vo impl vortex_array::array::vtable::operations::OperationsVTable for vortex_fastlanes::RLE -pub fn vortex_fastlanes::RLE::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::RLE>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_fastlanes::RLE::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fastlanes::RLE>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_fastlanes::RLE diff --git a/encodings/fastlanes/src/bitpacking/vtable/operations.rs b/encodings/fastlanes/src/bitpacking/vtable/operations.rs index 13e22a2f11c..2907fbf37ad 100644 --- a/encodings/fastlanes/src/bitpacking/vtable/operations.rs +++ b/encodings/fastlanes/src/bitpacking/vtable/operations.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; use vortex_error::VortexResult; @@ -11,11 +10,7 @@ use crate::BitPacked; use crate::bitpack_decompress; use crate::bitpacking::array::BitPackedArrayExt; impl OperationsVTable for BitPacked { - fn scalar_at( - array: ArrayView<'_, BitPacked>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, BitPacked>, index: usize) -> VortexResult { Ok( if let Some(patches) = array.patches() && let Some(patch) = patches.get_patched(index)? diff --git a/encodings/fastlanes/src/delta/vtable/operations.rs b/encodings/fastlanes/src/delta/vtable/operations.rs index 731588a67bb..7f88e03c7e5 100644 --- a/encodings/fastlanes/src/delta/vtable/operations.rs +++ b/encodings/fastlanes/src/delta/vtable/operations.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::IntoArray; use vortex_array::ToCanonical; use vortex_array::scalar::Scalar; @@ -11,11 +10,7 @@ use vortex_error::VortexResult; use super::Delta; impl OperationsVTable for Delta { - fn scalar_at( - array: ArrayView<'_, Delta>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Delta>, index: usize) -> VortexResult { let decompressed = array.array().slice(index..index + 1)?.to_primitive(); decompressed.into_array().scalar_at(0) } diff --git a/encodings/fastlanes/src/for/vtable/operations.rs b/encodings/fastlanes/src/for/vtable/operations.rs index e90ff7f4ad2..6c108fb71fc 100644 --- a/encodings/fastlanes/src/for/vtable/operations.rs +++ b/encodings/fastlanes/src/for/vtable/operations.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::match_each_integer_ptype; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; @@ -12,11 +11,7 @@ use vortex_error::VortexResult; use super::FoR; use crate::r#for::array::FoRArrayExt; impl OperationsVTable for FoR { - fn scalar_at( - array: ArrayView<'_, FoR>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, FoR>, index: usize) -> VortexResult { let encoded_pvalue = array.encoded().scalar_at(index)?; let encoded_pvalue = encoded_pvalue.as_primitive(); let reference = array.reference_scalar(); diff --git a/encodings/fastlanes/src/rle/vtable/operations.rs b/encodings/fastlanes/src/rle/vtable/operations.rs index 4d54cd9cf32..ba8f873a456 100644 --- a/encodings/fastlanes/src/rle/vtable/operations.rs +++ b/encodings/fastlanes/src/rle/vtable/operations.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; use vortex_error::VortexExpect; @@ -13,11 +12,7 @@ use crate::FL_CHUNK_SIZE; use crate::rle::RLEArrayExt; impl OperationsVTable for RLE { - fn scalar_at( - array: ArrayView<'_, RLE>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, RLE>, index: usize) -> VortexResult { let offset_in_chunk = array.offset(); let chunk_relative_idx = array.indices().scalar_at(offset_in_chunk + index)?; diff --git a/encodings/fsst/public-api.lock b/encodings/fsst/public-api.lock index 341a2fd8222..92e01cb26ee 100644 --- a/encodings/fsst/public-api.lock +++ b/encodings/fsst/public-api.lock @@ -50,7 +50,7 @@ pub fn vortex_fsst::FSST::validate(&self, data: &Self::ArrayData, dtype: &vortex impl vortex_array::array::vtable::operations::OperationsVTable for vortex_fsst::FSST -pub fn vortex_fsst::FSST::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fsst::FSST>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_fsst::FSST::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_fsst::FSST>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_fsst::FSST diff --git a/encodings/fsst/src/ops.rs b/encodings/fsst/src/ops.rs index 86172377f7e..0753e777296 100644 --- a/encodings/fsst/src/ops.rs +++ b/encodings/fsst/src/ops.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::arrays::varbin::varbin_scalar; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; @@ -14,11 +13,7 @@ use crate::FSST; use crate::FSSTArrayExt; impl OperationsVTable for FSST { - fn scalar_at( - array: ArrayView<'_, FSST>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, FSST>, index: usize) -> VortexResult { let compressed = array.codes().scalar_at(index)?; let binary_datum = compressed.as_binary().value().vortex_expect("non-null"); diff --git a/encodings/parquet-variant/src/operations.rs b/encodings/parquet-variant/src/operations.rs index 2efad44ae6e..fc6c2df13f2 100644 --- a/encodings/parquet-variant/src/operations.rs +++ b/encodings/parquet-variant/src/operations.rs @@ -7,7 +7,6 @@ use chrono::Timelike; use parquet_variant::Variant as PqVariant; use vortex_array::ArrayRef; use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::dtype::DType; use vortex_array::dtype::DecimalDType; use vortex_array::dtype::FieldName; @@ -38,11 +37,7 @@ impl OperationsVTable for ParquetVariant { /// | non-NULL | NULL | Un-shredded: decode from metadata + value bytes | /// | NULL | non-NULL | Perfectly shredded: use typed_value directly | /// | non-NULL | non-NULL | Partially shredded object (typed_value takes priority) | - fn scalar_at( - array: ArrayView<'_, ParquetVariant>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ParquetVariant>, index: usize) -> VortexResult { if array.validity()?.is_null(index)? { return Ok(Scalar::null(DType::Variant(Nullability::Nullable))); } diff --git a/encodings/pco/public-api.lock b/encodings/pco/public-api.lock index 07307c38196..9af38910a84 100644 --- a/encodings/pco/public-api.lock +++ b/encodings/pco/public-api.lock @@ -46,7 +46,7 @@ pub fn vortex_pco::Pco::validate(&self, data: &vortex_pco::PcoData, dtype: &vort impl vortex_array::array::vtable::operations::OperationsVTable for vortex_pco::Pco -pub fn vortex_pco::Pco::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_pco::Pco>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_pco::Pco::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_pco::Pco>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_pco::Pco @@ -86,7 +86,7 @@ pub struct vortex_pco::PcoData impl vortex_pco::PcoData -pub fn vortex_pco::PcoData::decompress(&self, unsliced_validity: &vortex_array::validity::Validity, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_pco::PcoData::decompress(&self, unsliced_validity: &vortex_array::validity::Validity, unsliced_mask: &vortex_mask::Mask) -> vortex_error::VortexResult pub fn vortex_pco::PcoData::from_array(array: vortex_array::array::erased::ArrayRef, level: usize, nums_per_page: usize) -> vortex_error::VortexResult diff --git a/encodings/pco/src/array.rs b/encodings/pco/src/array.rs index 8f83dbd8fa8..1ccf89542e7 100644 --- a/encodings/pco/src/array.rs +++ b/encodings/pco/src/array.rs @@ -28,10 +28,8 @@ use vortex_array::ArrayView; use vortex_array::ExecutionCtx; use vortex_array::ExecutionResult; use vortex_array::IntoArray; -use vortex_array::LEGACY_SESSION; use vortex_array::Precision; use vortex_array::ToCanonical; -use vortex_array::VortexSessionExecute; use vortex_array::arrays::Primitive; use vortex_array::arrays::PrimitiveArray; use vortex_array::buffer::BufferHandle; @@ -54,6 +52,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_error::vortex_ensure; use vortex_error::vortex_err; +use vortex_mask::Mask; use vortex_session::VortexSession; use crate::PcoChunkInfo; @@ -219,10 +218,11 @@ impl VTable for Pco { fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { let unsliced_validity = child_to_validity(&array.as_ref().slots()[0], array.dtype().nullability()); + let unsliced_mask = unsliced_validity.execute_mask(array.data().unsliced_n_rows(), ctx)?; Ok(ExecutionResult::done( array .data() - .decompress(&unsliced_validity, ctx)? + .decompress(&unsliced_validity, &unsliced_mask)? .into_array(), )) } @@ -491,7 +491,7 @@ impl PcoData { pub fn decompress( &self, unsliced_validity: &Validity, - ctx: &mut ExecutionCtx, + unsliced_mask: &Mask, ) -> VortexResult { // To start, we figure out which chunks and pages we need to decompress, and with // what value offset into the first such page. @@ -499,7 +499,7 @@ impl PcoData { let values_byte_buffer = match_number_enum!( number_type, NumberType => { - self.decompress_values_typed::(unsliced_validity, ctx)? + self.decompress_values_typed::(unsliced_mask)? } ); @@ -511,15 +511,10 @@ impl PcoData { )) } - fn decompress_values_typed( - &self, - unsliced_validity: &Validity, - ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn decompress_values_typed(&self, unsliced_mask: &Mask) -> VortexResult { // To start, we figure out what range of values we need to decompress. - let slice_value_indices = unsliced_validity - .execute_mask(self.unsliced_n_rows, ctx)? - .valid_counts_for_indices(&[self.slice_start, self.slice_stop]); + let slice_value_indices = + unsliced_mask.valid_counts_for_indices(&[self.slice_start, self.slice_stop]); let slice_value_start = slice_value_indices[0]; let slice_value_stop = slice_value_indices[1]; let slice_n_values = slice_value_stop - slice_value_start; @@ -626,16 +621,12 @@ impl ValidityVTable for Pco { } impl OperationsVTable for Pco { - fn scalar_at( - array: ArrayView<'_, Pco>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { - let mut ctx = LEGACY_SESSION.create_execution_ctx(); + fn scalar_at(array: ArrayView<'_, Pco>, index: usize) -> VortexResult { let unsliced_validity = child_to_validity(&array.slots()[0], array.dtype().nullability()); + let unsliced_mask = unsliced_validity.to_mask(array.unsliced_n_rows()); array ._slice(index, index + 1) - .decompress(&unsliced_validity, &mut ctx)? + .decompress(&unsliced_validity, &unsliced_mask)? .into_array() .scalar_at(0) } diff --git a/encodings/pco/src/test.rs b/encodings/pco/src/test.rs index f674fb7d1bb..aed2dff7a89 100644 --- a/encodings/pco/src/test.rs +++ b/encodings/pco/src/test.rs @@ -49,12 +49,14 @@ fn test_compress_decompress() { assert!(compressed.pages.len() < array.into_array().nbytes() as usize); // check full decompression works - let mut ctx = LEGACY_SESSION.create_execution_ctx(); let unsliced_validity = child_to_validity( &compressed.as_ref().slots()[0], compressed.dtype().nullability(), ); - let decompressed = compressed.decompress(&unsliced_validity, &mut ctx).unwrap(); + let unsliced_mask = unsliced_validity.to_mask(compressed.unsliced_n_rows()); + let decompressed = compressed + .decompress(&unsliced_validity, &unsliced_mask) + .unwrap(); assert_arrays_eq!(decompressed, PrimitiveArray::from_iter(data)); // check slicing works @@ -76,12 +78,14 @@ fn test_compress_decompress_small() { let expected = array.into_array(); assert_arrays_eq!(compressed, expected); - let mut ctx = LEGACY_SESSION.create_execution_ctx(); let unsliced_validity = child_to_validity( &compressed.as_ref().slots()[0], compressed.dtype().nullability(), ); - let decompressed = compressed.decompress(&unsliced_validity, &mut ctx).unwrap(); + let unsliced_mask = unsliced_validity.to_mask(compressed.unsliced_n_rows()); + let decompressed = compressed + .decompress(&unsliced_validity, &unsliced_mask) + .unwrap(); assert_arrays_eq!(decompressed, expected); } @@ -90,12 +94,14 @@ fn test_empty() { let data: Vec = vec![]; let array = PrimitiveArray::from_iter(data.clone()); let compressed = Pco::from_primitive(array.as_view(), 3, 100).unwrap(); - let mut ctx = LEGACY_SESSION.create_execution_ctx(); let unsliced_validity = child_to_validity( &compressed.as_ref().slots()[0], compressed.dtype().nullability(), ); - let primitive = compressed.decompress(&unsliced_validity, &mut ctx).unwrap(); + let unsliced_mask = unsliced_validity.to_mask(compressed.unsliced_n_rows()); + let primitive = compressed + .decompress(&unsliced_validity, &unsliced_mask) + .unwrap(); assert_arrays_eq!(primitive, PrimitiveArray::from_iter(data)); } diff --git a/encodings/runend/public-api.lock b/encodings/runend/public-api.lock index c746d4f54a4..fd36b3d0a3b 100644 --- a/encodings/runend/public-api.lock +++ b/encodings/runend/public-api.lock @@ -72,7 +72,7 @@ pub fn vortex_runend::RunEnd::validate(&self, data: &Self::ArrayData, dtype: &vo impl vortex_array::array::vtable::operations::OperationsVTable for vortex_runend::RunEnd -pub fn vortex_runend::RunEnd::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_runend::RunEnd>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_runend::RunEnd::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_runend::RunEnd>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_runend::RunEnd diff --git a/encodings/runend/src/ops.rs b/encodings/runend/src/ops.rs index b8a199bf51a..7dac349ede2 100644 --- a/encodings/runend/src/ops.rs +++ b/encodings/runend/src/ops.rs @@ -3,7 +3,6 @@ use vortex_array::ArrayRef; use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::scalar::PValue; use vortex_array::scalar::Scalar; use vortex_array::search_sorted::SearchResult; @@ -16,11 +15,7 @@ use crate::RunEnd; use crate::array::RunEndArrayExt; impl OperationsVTable for RunEnd { - fn scalar_at( - array: ArrayView<'_, RunEnd>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, RunEnd>, index: usize) -> VortexResult { array.values().scalar_at(array.find_physical_index(index)?) } } diff --git a/encodings/sequence/public-api.lock b/encodings/sequence/public-api.lock index 6bb8f69d1d2..6a8e4e27a2a 100644 --- a/encodings/sequence/public-api.lock +++ b/encodings/sequence/public-api.lock @@ -50,7 +50,7 @@ pub fn vortex_sequence::Sequence::validate(&self, data: &Self::ArrayData, dtype: impl vortex_array::array::vtable::operations::OperationsVTable for vortex_sequence::Sequence -pub fn vortex_sequence::Sequence::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_sequence::Sequence>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_sequence::Sequence::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_sequence::Sequence>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_sequence::Sequence diff --git a/encodings/sequence/src/array.rs b/encodings/sequence/src/array.rs index f941d4cf1a6..38cad22ab52 100644 --- a/encodings/sequence/src/array.rs +++ b/encodings/sequence/src/array.rs @@ -347,11 +347,7 @@ impl VTable for Sequence { } impl OperationsVTable for Sequence { - fn scalar_at( - array: ArrayView<'_, Sequence>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Sequence>, index: usize) -> VortexResult { Scalar::try_new( array.dtype().clone(), Some(ScalarValue::Primitive(array.index_value(index))), diff --git a/encodings/sparse/public-api.lock b/encodings/sparse/public-api.lock index 30a2e9a726c..be246ec1598 100644 --- a/encodings/sparse/public-api.lock +++ b/encodings/sparse/public-api.lock @@ -52,7 +52,7 @@ pub fn vortex_sparse::Sparse::validate(&self, data: &Self::ArrayData, dtype: &vo impl vortex_array::array::vtable::operations::OperationsVTable for vortex_sparse::Sparse -pub fn vortex_sparse::Sparse::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_sparse::Sparse>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_sparse::Sparse::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_sparse::Sparse>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_sparse::Sparse diff --git a/encodings/sparse/src/ops.rs b/encodings/sparse/src/ops.rs index 552dcf5fa6e..14ef9839e99 100644 --- a/encodings/sparse/src/ops.rs +++ b/encodings/sparse/src/ops.rs @@ -2,7 +2,6 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use vortex_array::ArrayView; -use vortex_array::ExecutionCtx; use vortex_array::scalar::Scalar; use vortex_array::vtable::OperationsVTable; use vortex_error::VortexResult; @@ -10,11 +9,7 @@ use vortex_error::VortexResult; use crate::Sparse; impl OperationsVTable for Sparse { - fn scalar_at( - array: ArrayView<'_, Sparse>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Sparse>, index: usize) -> VortexResult { Ok(array .patches() .get_patched(index)? diff --git a/encodings/zigzag/public-api.lock b/encodings/zigzag/public-api.lock index d94894a7ca0..32711f18435 100644 --- a/encodings/zigzag/public-api.lock +++ b/encodings/zigzag/public-api.lock @@ -48,7 +48,7 @@ pub fn vortex_zigzag::ZigZag::validate(&self, _data: &Self::ArrayData, dtype: &v impl vortex_array::array::vtable::operations::OperationsVTable for vortex_zigzag::ZigZag -pub fn vortex_zigzag::ZigZag::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_zigzag::ZigZag>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_zigzag::ZigZag::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_zigzag::ZigZag>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityChild for vortex_zigzag::ZigZag diff --git a/encodings/zigzag/src/array.rs b/encodings/zigzag/src/array.rs index 851b40b438b..881f51012fa 100644 --- a/encodings/zigzag/src/array.rs +++ b/encodings/zigzag/src/array.rs @@ -237,11 +237,7 @@ impl Default for ZigZagData { } impl OperationsVTable for ZigZag { - fn scalar_at( - array: ArrayView<'_, ZigZag>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ZigZag>, index: usize) -> VortexResult { let scalar = array.encoded().scalar_at(index)?; if scalar.is_null() { return scalar.primitive_reinterpret_cast(ZigZagArrayExt::ptype(&array)); diff --git a/encodings/zstd/public-api.lock b/encodings/zstd/public-api.lock index 44365606591..53888fe4930 100644 --- a/encodings/zstd/public-api.lock +++ b/encodings/zstd/public-api.lock @@ -54,7 +54,7 @@ pub fn vortex_zstd::Zstd::validate(&self, data: &Self::ArrayData, dtype: &vortex impl vortex_array::array::vtable::operations::OperationsVTable for vortex_zstd::Zstd -pub fn vortex_zstd::Zstd::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_zstd::Zstd>, index: usize, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_zstd::Zstd::scalar_at(array: vortex_array::array::view::ArrayView<'_, vortex_zstd::Zstd>, index: usize) -> vortex_error::VortexResult impl vortex_array::array::vtable::validity::ValidityVTable for vortex_zstd::Zstd diff --git a/encodings/zstd/src/array.rs b/encodings/zstd/src/array.rs index a11d48defb6..e00e96d09a7 100644 --- a/encodings/zstd/src/array.rs +++ b/encodings/zstd/src/array.rs @@ -21,10 +21,8 @@ use vortex_array::Canonical; use vortex_array::ExecutionCtx; use vortex_array::ExecutionResult; use vortex_array::IntoArray; -use vortex_array::LEGACY_SESSION; use vortex_array::Precision; use vortex_array::ToCanonical; -use vortex_array::VortexSessionExecute; use vortex_array::accessor::ArrayAccessor; use vortex_array::arrays::ConstantArray; use vortex_array::arrays::PrimitiveArray; @@ -54,6 +52,7 @@ use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_error::vortex_panic; use vortex_mask::AllOr; +use vortex_mask::Mask; use vortex_session::VortexSession; use crate::ZstdFrameMetadata; @@ -233,9 +232,10 @@ impl VTable for Zstd { fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { let unsliced_validity = child_to_validity(&array.as_ref().slots()[0], array.dtype().nullability()); + let unsliced_mask = unsliced_validity.execute_mask(array.data().unsliced_n_rows(), ctx)?; array .data() - .decompress(array.dtype(), &unsliced_validity, ctx)? + .decompress(array.dtype(), &unsliced_validity, &unsliced_mask)? .execute::(ctx) .map(ExecutionResult::done) } @@ -309,9 +309,10 @@ impl Zstd { pub fn decompress(array: &ZstdArray, ctx: &mut ExecutionCtx) -> VortexResult { let unsliced_validity = child_to_validity(&array.as_ref().slots()[0], array.dtype().nullability()); + let unsliced_mask = unsliced_validity.execute_mask(array.data().unsliced_n_rows(), ctx)?; array .data() - .decompress(array.dtype(), &unsliced_validity, ctx) + .decompress(array.dtype(), &unsliced_validity, &unsliced_mask) } } @@ -809,15 +810,14 @@ impl ZstdData { &self, dtype: &DType, unsliced_validity: &Validity, - ctx: &mut ExecutionCtx, + unsliced_mask: &Mask, ) -> VortexResult { // To start, we figure out which frames we need to decompress, and with // what row offset into the first such frame. let byte_width = Self::byte_width(dtype); let slice_n_rows = self.slice_stop - self.slice_start; - let slice_value_indices = unsliced_validity - .execute_mask(self.unsliced_n_rows, ctx)? - .valid_counts_for_indices(&[self.slice_start, self.slice_stop]); + let slice_value_indices = + unsliced_mask.valid_counts_for_indices(&[self.slice_start, self.slice_stop]); let slice_value_idx_start = slice_value_indices[0]; let slice_value_idx_stop = slice_value_indices[1]; @@ -922,7 +922,10 @@ impl ZstdData { Ok(primitive.into_array()) } DType::Binary(_) | DType::Utf8(_) => { - match slice_validity.execute_mask(slice_n_rows, ctx)?.indices() { + match unsliced_mask + .slice(self.slice_start..self.slice_stop) + .indices() + { AllOr::All => { let (buffers, all_views) = reconstruct_views(&decompressed, MAX_BUFFER_LEN); let valid_views = all_views.slice( @@ -1020,16 +1023,12 @@ impl ValidityVTable for Zstd { } impl OperationsVTable for Zstd { - fn scalar_at( - array: ArrayView<'_, Zstd>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { - let mut ctx = LEGACY_SESSION.create_execution_ctx(); + fn scalar_at(array: ArrayView<'_, Zstd>, index: usize) -> VortexResult { let unsliced_validity = child_to_validity(&array.slots()[0], array.dtype().nullability()); + let unsliced_mask = unsliced_validity.to_mask(array.data().unsliced_n_rows()); let sliced = array.data().with_slice(index, index + 1); sliced - .decompress(array.dtype(), &unsliced_validity, &mut ctx)? + .decompress(array.dtype(), &unsliced_validity, &unsliced_mask)? .scalar_at(0) } } diff --git a/encodings/zstd/src/zstd_buffers.rs b/encodings/zstd/src/zstd_buffers.rs index e1712b01c2e..00a6a205830 100644 --- a/encodings/zstd/src/zstd_buffers.rs +++ b/encodings/zstd/src/zstd_buffers.rs @@ -453,11 +453,7 @@ impl VTable for ZstdBuffers { } impl OperationsVTable for ZstdBuffers { - fn scalar_at( - array: ArrayView<'_, ZstdBuffers>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ZstdBuffers>, index: usize) -> VortexResult { // TODO(os): maybe we should not support scalar_at, it is really slow, and adding a cache // layer here is weird. Valid use of zstd buffers array would be by executing it first into // canonical diff --git a/vortex-array/public-api.lock b/vortex-array/public-api.lock index 629dcd50d4f..d2534e1a67c 100644 --- a/vortex-array/public-api.lock +++ b/vortex-array/public-api.lock @@ -1142,7 +1142,7 @@ pub fn vortex_array::arrays::Bool::fmt(&self, f: &mut core::fmt::Formatter<'_>) impl vortex_array::OperationsVTable for vortex_array::arrays::Bool -pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Bool @@ -1320,7 +1320,7 @@ pub fn vortex_array::arrays::Chunked::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Chunked -pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -1488,7 +1488,7 @@ pub fn vortex_array::arrays::Constant::fmt(&self, f: &mut core::fmt::Formatter<' impl vortex_array::OperationsVTable for vortex_array::arrays::Constant -pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Constant @@ -1672,7 +1672,7 @@ pub fn vortex_array::arrays::Decimal::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Decimal -pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -1892,7 +1892,7 @@ pub fn vortex_array::arrays::dict::Dict::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::dict::Dict -pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -1988,7 +1988,7 @@ pub fn vortex_array::arrays::dict::Dict::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::dict::Dict -pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -2326,7 +2326,7 @@ pub fn vortex_array::arrays::Extension::fmt(&self, f: &mut core::fmt::Formatter< impl vortex_array::OperationsVTable for vortex_array::arrays::Extension -pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Extension @@ -2456,7 +2456,7 @@ pub fn vortex_array::arrays::Filter::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Filter -pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Filter @@ -2648,7 +2648,7 @@ pub fn vortex_array::arrays::FixedSizeList::fmt(&self, f: &mut core::fmt::Format impl vortex_array::OperationsVTable for vortex_array::arrays::FixedSizeList -pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -2796,7 +2796,7 @@ pub fn vortex_array::arrays::List::fmt(&self, f: &mut core::fmt::Formatter<'_>) impl vortex_array::OperationsVTable for vortex_array::arrays::List -pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::List @@ -2980,7 +2980,7 @@ pub fn vortex_array::arrays::ListView::fmt(&self, f: &mut core::fmt::Formatter<' impl vortex_array::OperationsVTable for vortex_array::arrays::ListView -pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::ListView @@ -3164,7 +3164,7 @@ pub fn vortex_array::arrays::Masked::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Masked -pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Masked @@ -3294,7 +3294,7 @@ pub fn vortex_array::arrays::null::Null::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::null::Null -pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -3380,7 +3380,7 @@ pub fn vortex_array::arrays::patched::Patched::fmt(&self, f: &mut core::fmt::For impl vortex_array::OperationsVTable for vortex_array::arrays::patched::Patched -pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -3670,7 +3670,7 @@ pub fn vortex_array::arrays::Primitive::fmt(&self, f: &mut core::fmt::Formatter< impl vortex_array::OperationsVTable for vortex_array::arrays::Primitive -pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -3962,7 +3962,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt(&self, f: &mut core: impl vortex_array::OperationsVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -4076,7 +4076,7 @@ pub fn vortex_array::arrays::Shared::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Shared -pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Shared @@ -4192,7 +4192,7 @@ pub fn vortex_array::arrays::slice::Slice::fmt(&self, f: &mut core::fmt::Formatt impl vortex_array::OperationsVTable for vortex_array::arrays::slice::Slice -pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -4422,7 +4422,7 @@ pub fn vortex_array::arrays::Struct::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Struct -pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Struct @@ -4586,7 +4586,7 @@ pub fn vortex_array::arrays::VarBin::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::VarBin -pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -4956,7 +4956,7 @@ pub fn vortex_array::arrays::VarBinView::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::VarBinView -pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -5146,7 +5146,7 @@ pub fn vortex_array::arrays::Variant::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Variant -pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Variant @@ -5218,7 +5218,7 @@ pub fn vortex_array::arrays::Bool::fmt(&self, f: &mut core::fmt::Formatter<'_>) impl vortex_array::OperationsVTable for vortex_array::arrays::Bool -pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Bool @@ -5310,7 +5310,7 @@ pub fn vortex_array::arrays::Chunked::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Chunked -pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -5404,7 +5404,7 @@ pub fn vortex_array::arrays::Constant::fmt(&self, f: &mut core::fmt::Formatter<' impl vortex_array::OperationsVTable for vortex_array::arrays::Constant -pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Constant @@ -5494,7 +5494,7 @@ pub fn vortex_array::arrays::Decimal::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Decimal -pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -5586,7 +5586,7 @@ pub fn vortex_array::arrays::dict::Dict::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::dict::Dict -pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -5680,7 +5680,7 @@ pub fn vortex_array::arrays::Extension::fmt(&self, f: &mut core::fmt::Formatter< impl vortex_array::OperationsVTable for vortex_array::arrays::Extension -pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Extension @@ -5766,7 +5766,7 @@ pub fn vortex_array::arrays::Filter::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Filter -pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Filter @@ -5828,7 +5828,7 @@ pub fn vortex_array::arrays::FixedSizeList::fmt(&self, f: &mut core::fmt::Format impl vortex_array::OperationsVTable for vortex_array::arrays::FixedSizeList -pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -5906,7 +5906,7 @@ pub fn vortex_array::arrays::List::fmt(&self, f: &mut core::fmt::Formatter<'_>) impl vortex_array::OperationsVTable for vortex_array::arrays::List -pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::List @@ -5988,7 +5988,7 @@ pub fn vortex_array::arrays::ListView::fmt(&self, f: &mut core::fmt::Formatter<' impl vortex_array::OperationsVTable for vortex_array::arrays::ListView -pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::ListView @@ -6066,7 +6066,7 @@ pub fn vortex_array::arrays::Masked::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Masked -pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Masked @@ -6148,7 +6148,7 @@ pub fn vortex_array::arrays::null::Null::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::null::Null -pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -6230,7 +6230,7 @@ pub fn vortex_array::arrays::patched::Patched::fmt(&self, f: &mut core::fmt::For impl vortex_array::OperationsVTable for vortex_array::arrays::patched::Patched -pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -6308,7 +6308,7 @@ pub fn vortex_array::arrays::Primitive::fmt(&self, f: &mut core::fmt::Formatter< impl vortex_array::OperationsVTable for vortex_array::arrays::Primitive -pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -6396,7 +6396,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt(&self, f: &mut core: impl vortex_array::OperationsVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -6458,7 +6458,7 @@ pub fn vortex_array::arrays::Shared::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Shared -pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Shared @@ -6520,7 +6520,7 @@ pub fn vortex_array::arrays::slice::Slice::fmt(&self, f: &mut core::fmt::Formatt impl vortex_array::OperationsVTable for vortex_array::arrays::slice::Slice -pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -6586,7 +6586,7 @@ pub fn vortex_array::arrays::Struct::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::Struct -pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Struct @@ -6672,7 +6672,7 @@ pub fn vortex_array::arrays::VarBin::fmt(&self, f: &mut core::fmt::Formatter<'_> impl vortex_array::OperationsVTable for vortex_array::arrays::VarBin -pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -6758,7 +6758,7 @@ pub fn vortex_array::arrays::VarBinView::fmt(&self, f: &mut core::fmt::Formatter impl vortex_array::OperationsVTable for vortex_array::arrays::VarBinView -pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -6840,7 +6840,7 @@ pub fn vortex_array::arrays::Variant::fmt(&self, f: &mut core::fmt::Formatter<'_ impl vortex_array::OperationsVTable for vortex_array::arrays::Variant -pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize) -> vortex_error::VortexResult impl vortex_array::VTable for vortex_array::arrays::Variant @@ -19392,7 +19392,7 @@ pub struct vortex_array::vtable::NotSupported impl vortex_array::OperationsVTable for vortex_array::NotSupported -pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize) -> vortex_error::VortexResult pub struct vortex_array::vtable::ValidityVTableFromChild @@ -20304,95 +20304,95 @@ pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayDat pub trait vortex_array::vtable::OperationsVTable -pub fn vortex_array::vtable::OperationsVTable::scalar_at(array: vortex_array::ArrayView<'_, V>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::vtable::OperationsVTable::scalar_at(array: vortex_array::ArrayView<'_, V>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Bool -pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Chunked -pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Constant -pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Decimal -pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Extension -pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Filter -pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::FixedSizeList -pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::List -pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::ListView -pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Masked -pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Primitive -pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Shared -pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Struct -pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::VarBin -pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::VarBinView -pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Variant -pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::dict::Dict -pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::null::Null -pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::patched::Patched -pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::slice::Slice -pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::NotSupported -pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize) -> vortex_error::VortexResult pub trait vortex_array::vtable::VTable: 'static + core::clone::Clone + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug @@ -22760,7 +22760,7 @@ pub struct vortex_array::NotSupported impl vortex_array::OperationsVTable for vortex_array::NotSupported -pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize) -> vortex_error::VortexResult pub struct vortex_array::ProstMetadata(pub M) @@ -24138,95 +24138,95 @@ pub fn vortex_array::Array::into_array(self) -> vortex_array::ArrayRef pub trait vortex_array::OperationsVTable -pub fn vortex_array::OperationsVTable::scalar_at(array: vortex_array::ArrayView<'_, V>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::OperationsVTable::scalar_at(array: vortex_array::ArrayView<'_, V>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Bool -pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Bool::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Bool>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Chunked -pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Chunked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Chunked>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Constant -pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Constant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Constant>, _index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Decimal -pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Decimal::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Decimal>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Extension -pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Extension::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Extension>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Filter -pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Filter::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Filter>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::FixedSizeList -pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::FixedSizeList::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::FixedSizeList>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::List -pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::List::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::List>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::ListView -pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::ListView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::ListView>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Masked -pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Masked::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Masked>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Primitive -pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Primitive::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Primitive>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Shared -pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Shared::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Shared>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Struct -pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::VarBin -pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBin::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBin>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::VarBinView -pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::VarBinView::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::VarBinView>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::Variant -pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::dict::Dict -pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::dict::Dict::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::dict::Dict>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::null::Null -pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::patched::Patched -pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::patched::Patched>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::scalar_fn::ScalarFnVTable>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::arrays::slice::Slice -pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::slice::Slice::scalar_at(array: vortex_array::ArrayView<'_, vortex_array::arrays::slice::Slice>, index: usize) -> vortex_error::VortexResult impl vortex_array::OperationsVTable for vortex_array::NotSupported -pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, V>, _index: usize) -> vortex_error::VortexResult pub trait vortex_array::SerializeMetadata diff --git a/vortex-array/src/array/mod.rs b/vortex-array/src/array/mod.rs index 9ef3e57cab2..a41b32ce2a8 100644 --- a/vortex-array/src/array/mod.rs +++ b/vortex-array/src/array/mod.rs @@ -17,8 +17,6 @@ use vortex_error::vortex_panic; use vortex_session::VortexSession; use crate::ExecutionCtx; -use crate::LEGACY_SESSION; -use crate::VortexSessionExecute; use crate::buffer::BufferHandle; use crate::builders::ArrayBuilder; use crate::dtype::DType; @@ -220,11 +218,7 @@ impl DynArray for ArrayInner { fn scalar_at(&self, this: &ArrayRef, index: usize) -> VortexResult { let view = unsafe { ArrayView::new_unchecked(this, &self.data) }; - >::scalar_at( - view, - index, - &mut LEGACY_SESSION.create_execution_ctx(), - ) + >::scalar_at(view, index) } fn validity(&self, this: &ArrayRef) -> VortexResult { diff --git a/vortex-array/src/array/vtable/operations.rs b/vortex-array/src/array/vtable/operations.rs index a002bc488fa..9b6804ebe4f 100644 --- a/vortex-array/src/array/vtable/operations.rs +++ b/vortex-array/src/array/vtable/operations.rs @@ -4,7 +4,6 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::VTable; use crate::scalar::Scalar; @@ -17,19 +16,11 @@ pub trait OperationsVTable { /// /// Bounds-checking has already been performed by the time this function is called, /// and the index is guaranteed to be non-null. - fn scalar_at( - array: ArrayView<'_, V>, - index: usize, - ctx: &mut ExecutionCtx, - ) -> VortexResult; + fn scalar_at(array: ArrayView<'_, V>, index: usize) -> VortexResult; } impl OperationsVTable for NotSupported { - fn scalar_at( - array: ArrayView<'_, V>, - _index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, V>, _index: usize) -> VortexResult { vortex_bail!( "Legacy scalar_at operation is not supported for {} arrays", array.encoding_id() diff --git a/vortex-array/src/arrays/bool/vtable/operations.rs b/vortex-array/src/arrays/bool/vtable/operations.rs index ece00b038ea..8e328a55bd1 100644 --- a/vortex-array/src/arrays/bool/vtable/operations.rs +++ b/vortex-array/src/arrays/bool/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Bool; @@ -11,11 +10,7 @@ use crate::arrays::bool::BoolArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Bool { - fn scalar_at( - array: ArrayView<'_, Bool>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Bool>, index: usize) -> VortexResult { Ok(Scalar::bool( array.to_bit_buffer().value(index), array.dtype().nullability(), diff --git a/vortex-array/src/arrays/chunked/vtable/operations.rs b/vortex-array/src/arrays/chunked/vtable/operations.rs index 7c7095a05c7..b8a8e3dce9a 100644 --- a/vortex-array/src/arrays/chunked/vtable/operations.rs +++ b/vortex-array/src/arrays/chunked/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Chunked; @@ -11,11 +10,7 @@ use crate::arrays::chunked::ChunkedArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Chunked { - fn scalar_at( - array: ArrayView<'_, Chunked>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Chunked>, index: usize) -> VortexResult { let (chunk_index, chunk_offset) = array.find_chunk_idx(index)?; array.chunk(chunk_index).scalar_at(chunk_offset) } diff --git a/vortex-array/src/arrays/constant/vtable/operations.rs b/vortex-array/src/arrays/constant/vtable/operations.rs index fdd2dd67345..05986a460ea 100644 --- a/vortex-array/src/arrays/constant/vtable/operations.rs +++ b/vortex-array/src/arrays/constant/vtable/operations.rs @@ -3,18 +3,13 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Constant; use crate::scalar::Scalar; impl OperationsVTable for Constant { - fn scalar_at( - array: ArrayView<'_, Constant>, - _index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Constant>, _index: usize) -> VortexResult { Ok(array.scalar.clone()) } } diff --git a/vortex-array/src/arrays/decimal/vtable/operations.rs b/vortex-array/src/arrays/decimal/vtable/operations.rs index cfd14d95d63..dfc8f06aa75 100644 --- a/vortex-array/src/arrays/decimal/vtable/operations.rs +++ b/vortex-array/src/arrays/decimal/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Decimal; @@ -12,11 +11,7 @@ use crate::scalar::DecimalValue; use crate::scalar::Scalar; impl OperationsVTable for Decimal { - fn scalar_at( - array: ArrayView<'_, Decimal>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Decimal>, index: usize) -> VortexResult { Ok(match_each_decimal_value_type!(array.values_type(), |D| { Scalar::decimal( DecimalValue::from(array.buffer::()[index]), diff --git a/vortex-array/src/arrays/dict/vtable/operations.rs b/vortex-array/src/arrays/dict/vtable/operations.rs index 9c75e4f2924..5c6868a2115 100644 --- a/vortex-array/src/arrays/dict/vtable/operations.rs +++ b/vortex-array/src/arrays/dict/vtable/operations.rs @@ -5,18 +5,13 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; use super::Dict; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::dict::DictArraySlotsExt; use crate::scalar::Scalar; impl OperationsVTable for Dict { - fn scalar_at( - array: ArrayView<'_, Dict>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Dict>, index: usize) -> VortexResult { let Some(dict_index) = array .codes() .scalar_at(index)? diff --git a/vortex-array/src/arrays/extension/vtable/operations.rs b/vortex-array/src/arrays/extension/vtable/operations.rs index d86c7599aef..c43a4563c89 100644 --- a/vortex-array/src/arrays/extension/vtable/operations.rs +++ b/vortex-array/src/arrays/extension/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Extension; @@ -11,11 +10,7 @@ use crate::arrays::extension::ExtensionArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Extension { - fn scalar_at( - array: ArrayView<'_, Extension>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Extension>, index: usize) -> VortexResult { Ok(Scalar::extension_ref( array.ext_dtype().clone(), array.storage_array().scalar_at(index)?, diff --git a/vortex-array/src/arrays/filter/vtable.rs b/vortex-array/src/arrays/filter/vtable.rs index 8eb7fb62213..1b22036cb9b 100644 --- a/vortex-array/src/arrays/filter/vtable.rs +++ b/vortex-array/src/arrays/filter/vtable.rs @@ -178,11 +178,7 @@ impl VTable for Filter { } } impl OperationsVTable for Filter { - fn scalar_at( - array: ArrayView<'_, Filter>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Filter>, index: usize) -> VortexResult { let rank_idx = array.mask.rank(index); array.child().scalar_at(rank_idx) } diff --git a/vortex-array/src/arrays/fixed_size_list/vtable/operations.rs b/vortex-array/src/arrays/fixed_size_list/vtable/operations.rs index ebd2ed463a4..2a0a1d109a1 100644 --- a/vortex-array/src/arrays/fixed_size_list/vtable/operations.rs +++ b/vortex-array/src/arrays/fixed_size_list/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::FixedSizeList; @@ -11,11 +10,7 @@ use crate::arrays::fixed_size_list::FixedSizeListArrayExt; use crate::scalar::Scalar; impl OperationsVTable for FixedSizeList { - fn scalar_at( - array: ArrayView<'_, FixedSizeList>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, FixedSizeList>, index: usize) -> VortexResult { // By the preconditions we know that the list scalar is not null. let list = array.fixed_size_list_elements_at(index)?; let children_elements: Vec = (0..list.len()) diff --git a/vortex-array/src/arrays/list/vtable/operations.rs b/vortex-array/src/arrays/list/vtable/operations.rs index c9fc69c7bbe..206cc0fb768 100644 --- a/vortex-array/src/arrays/list/vtable/operations.rs +++ b/vortex-array/src/arrays/list/vtable/operations.rs @@ -5,7 +5,6 @@ use std::sync::Arc; use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::List; @@ -13,11 +12,7 @@ use crate::arrays::list::ListArrayExt; use crate::scalar::Scalar; impl OperationsVTable for List { - fn scalar_at( - array: ArrayView<'_, List>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, List>, index: usize) -> VortexResult { // By the preconditions we know that the list scalar is not null. let elems = array.list_elements_at(index)?; let scalars: Vec = (0..elems.len()) diff --git a/vortex-array/src/arrays/listview/vtable/operations.rs b/vortex-array/src/arrays/listview/vtable/operations.rs index c899083027a..00ec732adfd 100644 --- a/vortex-array/src/arrays/listview/vtable/operations.rs +++ b/vortex-array/src/arrays/listview/vtable/operations.rs @@ -5,7 +5,6 @@ use std::sync::Arc; use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::ListView; @@ -13,11 +12,7 @@ use crate::arrays::listview::ListViewArrayExt; use crate::scalar::Scalar; impl OperationsVTable for ListView { - fn scalar_at( - array: ArrayView<'_, ListView>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ListView>, index: usize) -> VortexResult { // By the preconditions we know that the list scalar is not null. let list = array.list_elements_at(index)?; let children: Vec = (0..list.len()) diff --git a/vortex-array/src/arrays/masked/vtable/operations.rs b/vortex-array/src/arrays/masked/vtable/operations.rs index eb3132cf957..058e8da3078 100644 --- a/vortex-array/src/arrays/masked/vtable/operations.rs +++ b/vortex-array/src/arrays/masked/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Masked; @@ -11,11 +10,7 @@ use crate::arrays::masked::MaskedArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Masked { - fn scalar_at( - array: ArrayView<'_, Masked>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Masked>, index: usize) -> VortexResult { // Invalid indices are handled by the entrypoint function. Ok(array.child().scalar_at(index)?.into_nullable()) } diff --git a/vortex-array/src/arrays/null/mod.rs b/vortex-array/src/arrays/null/mod.rs index b2bdcc3a840..9106f5e6ccb 100644 --- a/vortex-array/src/arrays/null/mod.rs +++ b/vortex-array/src/arrays/null/mod.rs @@ -152,11 +152,7 @@ impl Array { } impl OperationsVTable for Null { - fn scalar_at( - _array: ArrayView<'_, Null>, - _index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(_array: ArrayView<'_, Null>, _index: usize) -> VortexResult { Ok(Scalar::null(DType::Null)) } } diff --git a/vortex-array/src/arrays/patched/vtable/operations.rs b/vortex-array/src/arrays/patched/vtable/operations.rs index 95beeaaf87f..1026ed5760e 100644 --- a/vortex-array/src/arrays/patched/vtable/operations.rs +++ b/vortex-array/src/arrays/patched/vtable/operations.rs @@ -3,22 +3,16 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::PrimitiveArray; use crate::arrays::patched::Patched; use crate::arrays::patched::PatchedArrayExt; use crate::arrays::patched::PatchedArraySlotsExt; -use crate::optimizer::ArrayOptimizer; use crate::scalar::Scalar; impl OperationsVTable for Patched { - fn scalar_at( - array: ArrayView<'_, Patched>, - index: usize, - ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Patched>, index: usize) -> VortexResult { let chunk = (index + array.offset()) / 1024; #[expect( @@ -31,13 +25,18 @@ impl OperationsVTable for Patched { let range = array.lane_range(chunk, lane)?; - // Get the range of indices corresponding to the lane, potentially decoding them to avoid - // the overhead of repeated scalar_at calls. - let patch_indices = array + // patch_indices is always Primitive after execution (enforced by require_child! in + // Patched::execute), and PrimitiveArray::slice returns a PrimitiveArray directly. + let patch_indices: PrimitiveArray = array .patch_indices() .slice(range.clone())? - .optimize()? - .execute::(ctx)?; + .try_downcast() + .map_err(|arr| { + vortex_error::vortex_err!( + "Expected PrimitiveArray for patch_indices, got {}", + arr.encoding_id() + ) + })?; // NOTE: we do linear scan as lane has <= 32 patches, binary search would likely // be slower. diff --git a/vortex-array/src/arrays/primitive/vtable/operations.rs b/vortex-array/src/arrays/primitive/vtable/operations.rs index ddeaa386485..2d5e772d00d 100644 --- a/vortex-array/src/arrays/primitive/vtable/operations.rs +++ b/vortex-array/src/arrays/primitive/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Primitive; @@ -11,11 +10,7 @@ use crate::match_each_native_ptype; use crate::scalar::Scalar; impl OperationsVTable for Primitive { - fn scalar_at( - array: ArrayView<'_, Primitive>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Primitive>, index: usize) -> VortexResult { Ok(match_each_native_ptype!(array.ptype(), |T| { Scalar::primitive(array.as_slice::()[index], array.dtype().nullability()) })) diff --git a/vortex-array/src/arrays/scalar_fn/vtable/operations.rs b/vortex-array/src/arrays/scalar_fn/vtable/operations.rs index bcb0368772a..8eb4db90d23 100644 --- a/vortex-array/src/arrays/scalar_fn/vtable/operations.rs +++ b/vortex-array/src/arrays/scalar_fn/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::IntoArray; use crate::LEGACY_SESSION; use crate::VortexSessionExecute; @@ -17,11 +16,7 @@ use crate::scalar::Scalar; use crate::scalar_fn::VecExecutionArgs; impl OperationsVTable for ScalarFnVTable { - fn scalar_at( - array: ArrayView<'_, ScalarFnVTable>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, ScalarFnVTable>, index: usize) -> VortexResult { let inputs: Vec<_> = array .children() .iter() diff --git a/vortex-array/src/arrays/shared/vtable.rs b/vortex-array/src/arrays/shared/vtable.rs index 6be759c83eb..d29ccd54657 100644 --- a/vortex-array/src/arrays/shared/vtable.rs +++ b/vortex-array/src/arrays/shared/vtable.rs @@ -118,11 +118,7 @@ impl VTable for Shared { } } impl OperationsVTable for Shared { - fn scalar_at( - array: ArrayView<'_, Shared>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Shared>, index: usize) -> VortexResult { array.current_array_ref().scalar_at(index) } } diff --git a/vortex-array/src/arrays/slice/vtable.rs b/vortex-array/src/arrays/slice/vtable.rs index 2ac41a358b9..6f793a1bab5 100644 --- a/vortex-array/src/arrays/slice/vtable.rs +++ b/vortex-array/src/arrays/slice/vtable.rs @@ -163,11 +163,7 @@ impl VTable for Slice { } } impl OperationsVTable for Slice { - fn scalar_at( - array: ArrayView<'_, Slice>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Slice>, index: usize) -> VortexResult { array.child().scalar_at(array.range.start + index) } } diff --git a/vortex-array/src/arrays/struct_/vtable/operations.rs b/vortex-array/src/arrays/struct_/vtable/operations.rs index 021d93f3c2f..4a57524ae72 100644 --- a/vortex-array/src/arrays/struct_/vtable/operations.rs +++ b/vortex-array/src/arrays/struct_/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Struct; @@ -11,11 +10,7 @@ use crate::arrays::struct_::StructArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Struct { - fn scalar_at( - array: ArrayView<'_, Struct>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Struct>, index: usize) -> VortexResult { let field_scalars: VortexResult> = array .iter_unmasked_fields() .map(|field| field.scalar_at(index)) diff --git a/vortex-array/src/arrays/varbin/vtable/operations.rs b/vortex-array/src/arrays/varbin/vtable/operations.rs index e11043e605a..6dd651d099d 100644 --- a/vortex-array/src/arrays/varbin/vtable/operations.rs +++ b/vortex-array/src/arrays/varbin/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::VarBin; @@ -12,11 +11,7 @@ use crate::arrays::varbin::varbin_scalar; use crate::scalar::Scalar; impl OperationsVTable for VarBin { - fn scalar_at( - array: ArrayView<'_, VarBin>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, VarBin>, index: usize) -> VortexResult { Ok(varbin_scalar(array.bytes_at(index), array.dtype())) } } diff --git a/vortex-array/src/arrays/varbinview/vtable/operations.rs b/vortex-array/src/arrays/varbinview/vtable/operations.rs index 1a1f20a0dbe..447e9fed215 100644 --- a/vortex-array/src/arrays/varbinview/vtable/operations.rs +++ b/vortex-array/src/arrays/varbinview/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::VarBinView; @@ -11,11 +10,7 @@ use crate::arrays::varbin::varbin_scalar; use crate::scalar::Scalar; impl OperationsVTable for VarBinView { - fn scalar_at( - array: ArrayView<'_, VarBinView>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, VarBinView>, index: usize) -> VortexResult { Ok(varbin_scalar(array.bytes_at(index), array.dtype())) } } diff --git a/vortex-array/src/arrays/variant/vtable/operations.rs b/vortex-array/src/arrays/variant/vtable/operations.rs index fb6fc0eb499..51f6005a4f5 100644 --- a/vortex-array/src/arrays/variant/vtable/operations.rs +++ b/vortex-array/src/arrays/variant/vtable/operations.rs @@ -3,7 +3,6 @@ use vortex_error::VortexResult; -use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::OperationsVTable; use crate::arrays::Variant; @@ -11,11 +10,7 @@ use crate::arrays::variant::VariantArrayExt; use crate::scalar::Scalar; impl OperationsVTable for Variant { - fn scalar_at( - array: ArrayView<'_, Variant>, - index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(array: ArrayView<'_, Variant>, index: usize) -> VortexResult { array.child().scalar_at(index) } } diff --git a/vortex-python/src/arrays/py/vtable.rs b/vortex-python/src/arrays/py/vtable.rs index aa646e971fe..ecdfbad0f90 100644 --- a/vortex-python/src/arrays/py/vtable.rs +++ b/vortex-python/src/arrays/py/vtable.rs @@ -124,11 +124,7 @@ impl VTable for PythonVTable { } impl OperationsVTable for PythonVTable { - fn scalar_at( - _array: ArrayView<'_, PythonVTable>, - _index: usize, - _ctx: &mut ExecutionCtx, - ) -> VortexResult { + fn scalar_at(_array: ArrayView<'_, PythonVTable>, _index: usize) -> VortexResult { todo!() } }