diff --git a/AGENTS.md b/AGENTS.md index e6bf3b12c5d..23016643d1b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,6 +13,13 @@ * you can try running `cargo fix --lib --allow-dirty --allow-staged && cargo clippy --fix --lib --allow-dirty --allow-staged` to automatically many fix minor errors. +* when iterating on CI failures, fetch only failed job logs first (`gh run view --job --log-failed`) + and run narrow local repro commands for the affected crate/tests before running workspace-wide checks. +* if `gh` commands fail with `error connecting to api.github.com` in sandbox, immediately rerun with escalated network + permissions instead of retrying in sandbox. +* if cargo fails with `sccache: error: Operation not permitted`, rerun the command with `RUSTC_WRAPPER=` so rustc runs + directly. +* run docs doctests from the docs directory (`make -C docs doctest`) so the correct Sphinx Makefile target is used. ## Architecture @@ -64,4 +71,4 @@ ## Commits -* All commits must be signed of by the committers in the form `Signed-off-by: "COMMITTER" `. \ No newline at end of file +* All commits must be signed of by the committers in the form `Signed-off-by: "COMMITTER" `. diff --git a/encodings/alp/public-api.lock b/encodings/alp/public-api.lock index c6cce9377eb..04fb71cab53 100644 --- a/encodings/alp/public-api.lock +++ b/encodings/alp/public-api.lock @@ -48,7 +48,7 @@ pub fn vortex_alp::ALP::nbuffers(_array: vortex_array::array::view::ArrayView<'_ pub fn vortex_alp::ALP::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_alp::ALP::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_alp::ALP::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_alp::ALP::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -112,6 +112,10 @@ impl core::fmt::Debug for vortex_alp::ALPData pub fn vortex_alp::ALPData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_alp::ALPData + +pub fn vortex_alp::ALPData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_alp::ALPData pub fn vortex_alp::ALPData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool @@ -182,7 +186,7 @@ pub fn vortex_alp::ALPRD::nbuffers(_array: vortex_array::array::view::ArrayView< pub fn vortex_alp::ALPRD::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_alp::ALPRD::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_alp::ALPRD::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_alp::ALPRD::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -236,6 +240,10 @@ impl core::fmt::Debug for vortex_alp::ALPRDData pub fn vortex_alp::ALPRDData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_alp::ALPRDData + +pub fn vortex_alp::ALPRDData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_alp::ALPRDData pub fn vortex_alp::ALPRDData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/alp/src/alp/array.rs b/encodings/alp/src/alp/array.rs index a5bc0a50b12..22ec4c9adf4 100644 --- a/encodings/alp/src/alp/array.rs +++ b/encodings/alp/src/alp/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -107,7 +109,10 @@ impl VTable for ALP { None } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let exponents = array.exponents(); Ok(Some( ALPMetadata { @@ -223,6 +228,16 @@ pub struct ALPData { exponents: Exponents, } +impl Display for ALPData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "exponents: {}", self.exponents)?; + if let Some(offset) = self.patch_offset { + write!(f, ", patch_offset: {offset}")?; + } + Ok(()) + } +} + #[derive(Clone, Debug)] pub struct ALP; diff --git a/encodings/alp/src/alp_rd/array.rs b/encodings/alp/src/alp_rd/array.rs index f75727cba99..431b69c125d 100644 --- a/encodings/alp/src/alp_rd/array.rs +++ b/encodings/alp/src/alp_rd/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -127,7 +129,10 @@ impl VTable for ALPRD { None } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let dict = array .left_parts_dictionary() .iter() @@ -330,6 +335,16 @@ pub struct ALPRDData { right_bit_width: u8, } +impl Display for ALPRDData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "right_bit_width: {}", self.right_bit_width)?; + if let Some(offset) = self.patch_offset { + write!(f, ", patch_offset: {offset}")?; + } + Ok(()) + } +} + #[derive(Clone, Debug)] pub struct ALPRDDataParts { pub left_parts: ArrayRef, diff --git a/encodings/bytebool/public-api.lock b/encodings/bytebool/public-api.lock index 612746bff2a..63d9c1b9518 100644 --- a/encodings/bytebool/public-api.lock +++ b/encodings/bytebool/public-api.lock @@ -44,7 +44,7 @@ pub fn vortex_bytebool::ByteBool::nbuffers(_array: vortex_array::array::view::Ar pub fn vortex_bytebool::ByteBool::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_bytebool::ByteBool::serialize(_array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_bytebool::ByteBool::serialize(_array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_bytebool::ByteBool::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -108,6 +108,10 @@ impl core::fmt::Debug for vortex_bytebool::ByteBoolData pub fn vortex_bytebool::ByteBoolData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_bytebool::ByteBoolData + +pub fn vortex_bytebool::ByteBoolData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_bytebool::ByteBoolData pub fn vortex_bytebool::ByteBoolData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/bytebool/src/array.rs b/encodings/bytebool/src/array.rs index 7338b08e384..c1a2ebf7fce 100644 --- a/encodings/bytebool/src/array.rs +++ b/encodings/bytebool/src/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hasher; use vortex_array::Array; @@ -92,7 +94,10 @@ impl VTable for ByteBool { } } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -170,6 +175,12 @@ pub struct ByteBoolData { buffer: BufferHandle, } +impl Display for ByteBoolData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub trait ByteBoolArrayExt: TypedArrayRef { fn validity(&self) -> Validity { child_to_validity( @@ -341,6 +352,7 @@ impl From>> for ByteBoolData { mod tests { use vortex_array::ArrayContext; use vortex_array::IntoArray; + use vortex_array::LEGACY_SESSION; use vortex_array::assert_arrays_eq; use vortex_array::serde::SerializeOptions; use vortex_array::serde::SerializedArray; @@ -395,7 +407,7 @@ mod tests { let serialized = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); diff --git a/encodings/datetime-parts/public-api.lock b/encodings/datetime-parts/public-api.lock index f0418a8b4d1..3cdc22cc7b7 100644 --- a/encodings/datetime-parts/public-api.lock +++ b/encodings/datetime-parts/public-api.lock @@ -42,7 +42,7 @@ pub fn vortex_datetime_parts::DateTimeParts::nbuffers(_array: vortex_array::arra pub fn vortex_datetime_parts::DateTimeParts::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_datetime_parts::DateTimeParts::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_datetime_parts::DateTimeParts::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_datetime_parts::DateTimeParts::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -100,6 +100,10 @@ impl core::fmt::Debug for vortex_datetime_parts::DateTimePartsData pub fn vortex_datetime_parts::DateTimePartsData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_datetime_parts::DateTimePartsData + +pub fn vortex_datetime_parts::DateTimePartsData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_datetime_parts::DateTimePartsData pub fn vortex_datetime_parts::DateTimePartsData::array_eq(&self, _other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/datetime-parts/src/array.rs b/encodings/datetime-parts/src/array.rs index 167e5b08df5..f66bd2b742a 100644 --- a/encodings/datetime-parts/src/array.rs +++ b/encodings/datetime-parts/src/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hasher; use prost::Message; @@ -124,7 +126,10 @@ impl VTable for DateTimeParts { vortex_panic!("DateTimePartsArray buffer_name index {idx} out of bounds") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( DateTimePartsMetadata { days_ptype: PType::try_from(array.days().dtype())? as i32, @@ -213,6 +218,12 @@ pub(super) const SLOT_NAMES: [&str; NUM_SLOTS] = ["days", "seconds", "subseconds #[derive(Clone, Debug)] pub struct DateTimePartsData {} +impl Display for DateTimePartsData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub trait DateTimePartsArrayExt: TypedArrayRef { fn days(&self) -> &ArrayRef { self.as_ref().slots()[DAYS_SLOT] diff --git a/encodings/decimal-byte-parts/public-api.lock b/encodings/decimal-byte-parts/public-api.lock index 0df4b476b17..397885e1b45 100644 --- a/encodings/decimal-byte-parts/public-api.lock +++ b/encodings/decimal-byte-parts/public-api.lock @@ -40,7 +40,7 @@ pub fn vortex_decimal_byte_parts::DecimalByteParts::nbuffers(_array: vortex_arra pub fn vortex_decimal_byte_parts::DecimalByteParts::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_decimal_byte_parts::DecimalByteParts::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_decimal_byte_parts::DecimalByteParts::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_decimal_byte_parts::DecimalByteParts::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -92,6 +92,10 @@ impl core::fmt::Debug for vortex_decimal_byte_parts::DecimalBytePartsData pub fn vortex_decimal_byte_parts::DecimalBytePartsData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_decimal_byte_parts::DecimalBytePartsData + +pub fn vortex_decimal_byte_parts::DecimalBytePartsData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_decimal_byte_parts::DecimalBytePartsData pub fn vortex_decimal_byte_parts::DecimalBytePartsData::array_eq(&self, _other: &Self, _precision: vortex_array::hash::Precision) -> bool 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 0cf4056b37b..ea90bf575e0 100644 --- a/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs +++ b/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hasher; use vortex_array::Array; @@ -104,7 +106,10 @@ impl VTable for DecimalByteParts { vortex_panic!("DecimalBytePartsArray buffer_name index {idx} out of bounds") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( DecimalBytesPartsMetadata { zeroth_child_ptype: PType::try_from(array.msp().dtype())? as i32, @@ -186,6 +191,12 @@ pub struct DecimalBytePartsData { _lower_parts: Vec, } +impl Display for DecimalBytePartsData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub struct DecimalBytePartsDataParts { pub msp: ArrayRef, } diff --git a/encodings/fastlanes/public-api.lock b/encodings/fastlanes/public-api.lock index e8146076954..70cd00432b7 100644 --- a/encodings/fastlanes/public-api.lock +++ b/encodings/fastlanes/public-api.lock @@ -162,7 +162,7 @@ pub fn vortex_fastlanes::BitPacked::nbuffers(_array: vortex_array::array::view:: pub fn vortex_fastlanes::BitPacked::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_fastlanes::BitPacked::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_fastlanes::BitPacked::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_fastlanes::BitPacked::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -222,6 +222,10 @@ impl core::fmt::Debug for vortex_fastlanes::BitPackedData pub fn vortex_fastlanes::BitPackedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_fastlanes::BitPackedData + +pub fn vortex_fastlanes::BitPackedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_fastlanes::BitPackedData pub fn vortex_fastlanes::BitPackedData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool @@ -284,7 +288,7 @@ pub fn vortex_fastlanes::Delta::nbuffers(_array: vortex_array::array::view::Arra pub fn vortex_fastlanes::Delta::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_fastlanes::Delta::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_fastlanes::Delta::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_fastlanes::Delta::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -320,6 +324,10 @@ impl core::fmt::Debug for vortex_fastlanes::DeltaData pub fn vortex_fastlanes::DeltaData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_fastlanes::DeltaData + +pub fn vortex_fastlanes::DeltaData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_fastlanes::DeltaData pub fn vortex_fastlanes::DeltaData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool @@ -370,7 +378,7 @@ pub fn vortex_fastlanes::FoR::nbuffers(_array: vortex_array::array::view::ArrayV pub fn vortex_fastlanes::FoR::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_fastlanes::FoR::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_fastlanes::FoR::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_fastlanes::FoR::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -422,6 +430,10 @@ impl core::fmt::Debug for vortex_fastlanes::FoRData pub fn vortex_fastlanes::FoRData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_fastlanes::FoRData + +pub fn vortex_fastlanes::FoRData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_fastlanes::FoRData pub fn vortex_fastlanes::FoRData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool @@ -474,7 +486,7 @@ pub fn vortex_fastlanes::RLE::nbuffers(_array: vortex_array::array::view::ArrayV pub fn vortex_fastlanes::RLE::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_fastlanes::RLE::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_fastlanes::RLE::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_fastlanes::RLE::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -518,6 +530,10 @@ impl core::fmt::Debug for vortex_fastlanes::RLEData pub fn vortex_fastlanes::RLEData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_fastlanes::RLEData + +pub fn vortex_fastlanes::RLEData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_fastlanes::RLEData pub fn vortex_fastlanes::RLEData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/fastlanes/src/bitpacking/array/mod.rs b/encodings/fastlanes/src/bitpacking/array/mod.rs index 935cac63016..5f7f43fa312 100644 --- a/encodings/fastlanes/src/bitpacking/array/mod.rs +++ b/encodings/fastlanes/src/bitpacking/array/mod.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use fastlanes::BitPacking; use vortex_array::ArrayRef; use vortex_array::TypedArrayRef; @@ -65,6 +68,12 @@ pub struct BitPackedData { pub(super) patch_offset_within_chunk: Option, } +impl Display for BitPackedData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "bit_width: {}, offset: {}", self.bit_width, self.offset) + } +} + impl BitPackedData { /// Create a new bitpacked array using a buffer of packed data. /// diff --git a/encodings/fastlanes/src/bitpacking/vtable/mod.rs b/encodings/fastlanes/src/bitpacking/vtable/mod.rs index 61670731f5c..252d5454787 100644 --- a/encodings/fastlanes/src/bitpacking/vtable/mod.rs +++ b/encodings/fastlanes/src/bitpacking/vtable/mod.rs @@ -164,7 +164,10 @@ impl VTable for BitPacked { SLOT_NAMES[idx].to_string() } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( BitPackedMetadata { bit_width: array.bit_width() as u32, diff --git a/encodings/fastlanes/src/delta/array/mod.rs b/encodings/fastlanes/src/delta/array/mod.rs index 4012bab8f13..4e96edc59ca 100644 --- a/encodings/fastlanes/src/delta/array/mod.rs +++ b/encodings/fastlanes/src/delta/array/mod.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use fastlanes::FastLanes; use vortex_array::ArrayRef; use vortex_array::TypedArrayRef; @@ -64,6 +67,12 @@ pub struct DeltaData { pub(super) offset: usize, } +impl Display for DeltaData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "offset: {}", self.offset) + } +} + pub trait DeltaArrayExt: TypedArrayRef { fn bases(&self) -> &ArrayRef { self.as_ref().slots()[BASES_SLOT] diff --git a/encodings/fastlanes/src/delta/vtable/mod.rs b/encodings/fastlanes/src/delta/vtable/mod.rs index 03bb6a2ce1a..e74243b4050 100644 --- a/encodings/fastlanes/src/delta/vtable/mod.rs +++ b/encodings/fastlanes/src/delta/vtable/mod.rs @@ -118,7 +118,10 @@ impl VTable for Delta { SLOT_NAMES[idx].to_string() } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( DeltaMetadata { deltas_len: array.deltas().len() as u64, diff --git a/encodings/fastlanes/src/for/array/mod.rs b/encodings/fastlanes/src/for/array/mod.rs index 48a6b84345b..691888ef5da 100644 --- a/encodings/fastlanes/src/for/array/mod.rs +++ b/encodings/fastlanes/src/for/array/mod.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_array::ArrayRef; use vortex_array::TypedArrayRef; use vortex_array::dtype::PType; @@ -40,6 +43,12 @@ pub trait FoRArrayExt: TypedArrayRef { impl> FoRArrayExt for T {} +impl Display for FoRData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "reference: {}", self.reference) + } +} + impl FoRData { pub(crate) fn try_new(reference: Scalar) -> VortexResult { vortex_ensure!(!reference.is_null(), "Reference value cannot be null"); diff --git a/encodings/fastlanes/src/for/vtable/mod.rs b/encodings/fastlanes/src/for/vtable/mod.rs index 7206b7a84e1..3f3207a8e24 100644 --- a/encodings/fastlanes/src/for/vtable/mod.rs +++ b/encodings/fastlanes/src/for/vtable/mod.rs @@ -96,7 +96,10 @@ impl VTable for FoR { SLOT_NAMES[idx].to_string() } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { // Note that we **only** serialize the optional scalar value (not including the dtype). Ok(Some(ScalarValue::to_proto_bytes( array.reference_scalar().value(), diff --git a/encodings/fastlanes/src/rle/array/mod.rs b/encodings/fastlanes/src/rle/array/mod.rs index ef0780fd6b3..cf418ea114e 100644 --- a/encodings/fastlanes/src/rle/array/mod.rs +++ b/encodings/fastlanes/src/rle/array/mod.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_array::ArrayRef; use vortex_array::TypedArrayRef; use vortex_error::VortexExpect as _; @@ -33,6 +36,12 @@ pub struct RLEData { pub(super) offset: usize, } +impl Display for RLEData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "offset: {}", self.offset) + } +} + impl RLEData { /// Create a new chunk-based RLE array from its components. /// @@ -347,7 +356,7 @@ mod tests { let ctx = ArrayContext::empty(); let serialized = rle_array .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); @@ -390,7 +399,7 @@ mod tests { let serialized = sliced .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); diff --git a/encodings/fastlanes/src/rle/vtable/mod.rs b/encodings/fastlanes/src/rle/vtable/mod.rs index 422a5d107a5..c0e19efd3af 100644 --- a/encodings/fastlanes/src/rle/vtable/mod.rs +++ b/encodings/fastlanes/src/rle/vtable/mod.rs @@ -130,7 +130,10 @@ impl VTable for RLE { crate::rle::array::SLOT_NAMES[idx].to_string() } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( RLEMetadata { values_len: array.values().len() as u64, diff --git a/encodings/fsst/public-api.lock b/encodings/fsst/public-api.lock index 41958e39ef7..341a2fd8222 100644 --- a/encodings/fsst/public-api.lock +++ b/encodings/fsst/public-api.lock @@ -42,7 +42,7 @@ pub fn vortex_fsst::FSST::nbuffers(_array: vortex_array::array::view::ArrayView< pub fn vortex_fsst::FSST::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_fsst::FSST::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_fsst::FSST::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_fsst::FSST::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -112,6 +112,10 @@ impl core::fmt::Debug for vortex_fsst::FSSTData pub fn vortex_fsst::FSSTData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_fsst::FSSTData + +pub fn vortex_fsst::FSSTData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_fsst::FSSTData pub fn vortex_fsst::FSSTData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/fsst/src/array.rs b/encodings/fsst/src/array.rs index b8b60368bda..1a5cc6ef02b 100644 --- a/encodings/fsst/src/array.rs +++ b/encodings/fsst/src/array.rs @@ -2,6 +2,7 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; use std::fmt::Formatter; use std::hash::Hasher; use std::sync::Arc; @@ -135,7 +136,10 @@ impl VTable for FSST { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let codes_offsets = array.as_ref().slots()[CODES_OFFSETS_SLOT] .as_ref() .vortex_expect("FSSTArray codes_offsets slot"); @@ -337,6 +341,12 @@ pub struct FSSTData { compressor: Arc Compressor + Send>>>, } +impl Display for FSSTData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "len: {}, nsymbols: {}", self.len, self.symbols.len()) + } +} + impl Debug for FSSTData { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("FSSTArray") diff --git a/encodings/parquet-variant/src/array.rs b/encodings/parquet-variant/src/array.rs index 60dd4a18794..ba13eb8e808 100644 --- a/encodings/parquet-variant/src/array.rs +++ b/encodings/parquet-variant/src/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use arrow_array::Array as ArrowArray; @@ -70,6 +72,12 @@ pub(crate) const SLOT_NAMES: [&str; NUM_SLOTS] = ["validity", "metadata", "value #[derive(Clone, Debug)] pub struct ParquetVariantData; +impl Display for ParquetVariantData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + impl ParquetVariant { pub fn try_new( validity: Validity, diff --git a/encodings/parquet-variant/src/vtable.rs b/encodings/parquet-variant/src/vtable.rs index 20e326e6f20..efc501cdac6 100644 --- a/encodings/parquet-variant/src/vtable.rs +++ b/encodings/parquet-variant/src/vtable.rs @@ -112,7 +112,10 @@ impl VTable for ParquetVariant { SLOT_NAMES[idx].to_string() } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let typed_value_dtype = array .typed_value_array() .map(|tv| tv.dtype().try_into()) @@ -264,16 +267,17 @@ mod tests { let dtype = array.dtype().clone(); let len = array.len(); + let session = VortexSession::empty().with::(); let ctx = ArrayContext::empty(); - let serialized = array.serialize(&ctx, &SerializeOptions::default()).unwrap(); + let serialized = array + .serialize(&ctx, &session, &SerializeOptions::default()) + .unwrap(); let mut concat = ByteBufferMut::empty(); for buf in serialized { concat.extend_from_slice(buf.as_ref()); } let concat = concat.freeze(); - - let session = VortexSession::empty().with::(); session.arrays().register(ParquetVariant); session.arrays().register(Variant); diff --git a/encodings/pco/public-api.lock b/encodings/pco/public-api.lock index 3444d0df2a8..2cf1233c7c2 100644 --- a/encodings/pco/public-api.lock +++ b/encodings/pco/public-api.lock @@ -38,7 +38,7 @@ pub fn vortex_pco::Pco::nbuffers(array: vortex_array::array::view::ArrayView<'_, pub fn vortex_pco::Pco::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_pco::Pco::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_pco::Pco::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_pco::Pco::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -108,6 +108,10 @@ impl core::fmt::Debug for vortex_pco::PcoData pub fn vortex_pco::PcoData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_pco::PcoData + +pub fn vortex_pco::PcoData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_pco::PcoData pub fn vortex_pco::PcoData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/pco/src/array.rs b/encodings/pco/src/array.rs index c96fb3143be..861f80cc6eb 100644 --- a/encodings/pco/src/array.rs +++ b/encodings/pco/src/array.rs @@ -3,6 +3,8 @@ use std::cmp; use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -162,7 +164,10 @@ impl VTable for Pco { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(array.metadata.clone().encode_to_vec())) } @@ -311,6 +316,16 @@ pub struct PcoData { slice_stop: usize, } +impl Display for PcoData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "ptype: {}, nrows: {}, slice: {}..{}", + self.ptype, self.unsliced_n_rows, self.slice_start, self.slice_stop + ) + } +} + impl PcoData { pub fn validate(&self, dtype: &DType, len: usize, validity: &Validity) -> VortexResult<()> { let _ = number_type_from_ptype(self.ptype); diff --git a/encodings/pco/src/test.rs b/encodings/pco/src/test.rs index 2112da6a222..a431037948a 100644 --- a/encodings/pco/src/test.rs +++ b/encodings/pco/src/test.rs @@ -184,6 +184,7 @@ fn test_serde() -> VortexResult<()> { let bytes = pco .serialize( &context, + &LEGACY_SESSION, &SerializeOptions { offset: 0, include_padding: true, diff --git a/encodings/runend/public-api.lock b/encodings/runend/public-api.lock index 46db17fd0ef..c746d4f54a4 100644 --- a/encodings/runend/public-api.lock +++ b/encodings/runend/public-api.lock @@ -64,7 +64,7 @@ pub fn vortex_runend::RunEnd::nbuffers(_array: vortex_array::array::view::ArrayV pub fn vortex_runend::RunEnd::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_runend::RunEnd::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_runend::RunEnd::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_runend::RunEnd::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -118,6 +118,10 @@ impl core::fmt::Debug for vortex_runend::RunEndData pub fn vortex_runend::RunEndData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_runend::RunEndData + +pub fn vortex_runend::RunEndData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_runend::RunEndData pub fn vortex_runend::RunEndData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/runend/src/array.rs b/encodings/runend/src/array.rs index 4c595d98e17..f714d09fc70 100644 --- a/encodings/runend/src/array.rs +++ b/encodings/runend/src/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -115,7 +117,10 @@ impl VTable for RunEnd { vortex_panic!("RunEndArray buffer_name index {idx} out of bounds") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( RunEndMetadata { ends_ptype: PType::try_from(array.ends().dtype()) @@ -186,6 +191,12 @@ pub struct RunEndData { offset: usize, } +impl Display for RunEndData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "offset: {}", self.offset) + } +} + pub struct RunEndDataParts { pub ends: ArrayRef, pub values: ArrayRef, diff --git a/encodings/sequence/public-api.lock b/encodings/sequence/public-api.lock index c0f39432ec1..aaacb5d3963 100644 --- a/encodings/sequence/public-api.lock +++ b/encodings/sequence/public-api.lock @@ -42,7 +42,7 @@ pub fn vortex_sequence::Sequence::nbuffers(_array: vortex_array::array::view::Ar pub fn vortex_sequence::Sequence::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_sequence::Sequence::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_sequence::Sequence::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_sequence::Sequence::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -102,6 +102,10 @@ impl core::fmt::Debug for vortex_sequence::SequenceData pub fn vortex_sequence::SequenceData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_sequence::SequenceData + +pub fn vortex_sequence::SequenceData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_sequence::SequenceData pub fn vortex_sequence::SequenceData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/sequence/src/array.rs b/encodings/sequence/src/array.rs index 6ff2af52319..f941d4cf1a6 100644 --- a/encodings/sequence/src/array.rs +++ b/encodings/sequence/src/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -68,6 +70,12 @@ pub struct SequenceData { multiplier: PValue, } +impl Display for SequenceData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "base: {}, multiplier: {}", self.base, self.multiplier) + } +} + pub struct SequenceDataParts { pub base: PValue, pub multiplier: PValue, @@ -248,7 +256,10 @@ impl VTable for Sequence { vortex_panic!("SequenceArray buffer_name index {idx} out of bounds") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let metadata = SequenceMetadata { base: Some((&array.base()).into()), multiplier: Some((&array.multiplier()).into()), diff --git a/encodings/sparse/public-api.lock b/encodings/sparse/public-api.lock index 883b4b15f01..30a2e9a726c 100644 --- a/encodings/sparse/public-api.lock +++ b/encodings/sparse/public-api.lock @@ -44,7 +44,7 @@ pub fn vortex_sparse::Sparse::nbuffers(_array: vortex_array::array::view::ArrayV pub fn vortex_sparse::Sparse::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_sparse::Sparse::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_sparse::Sparse::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_sparse::Sparse::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -108,6 +108,10 @@ impl core::fmt::Debug for vortex_sparse::SparseData pub fn vortex_sparse::SparseData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_sparse::SparseData + +pub fn vortex_sparse::SparseData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_sparse::SparseData pub fn vortex_sparse::SparseData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/sparse/src/lib.rs b/encodings/sparse/src/lib.rs index 1168611315c..87fd640fd1c 100644 --- a/encodings/sparse/src/lib.rs +++ b/encodings/sparse/src/lib.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -121,7 +123,10 @@ impl VTable for Sparse { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { let patches = array.patches().to_metadata(array.len(), array.dtype())?; let metadata = SparseMetadata { patches }; @@ -212,6 +217,12 @@ pub struct SparseData { fill_value: Scalar, } +impl Display for SparseData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "fill_value: {}", self.fill_value) + } +} + #[derive(Clone, Debug)] pub struct Sparse; diff --git a/encodings/zigzag/public-api.lock b/encodings/zigzag/public-api.lock index 0d8bb4674d5..a366ce1d631 100644 --- a/encodings/zigzag/public-api.lock +++ b/encodings/zigzag/public-api.lock @@ -40,7 +40,7 @@ pub fn vortex_zigzag::ZigZag::nbuffers(_array: vortex_array::array::view::ArrayV pub fn vortex_zigzag::ZigZag::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_zigzag::ZigZag::serialize(_array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_zigzag::ZigZag::serialize(_array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_zigzag::ZigZag::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -94,6 +94,10 @@ impl core::fmt::Debug for vortex_zigzag::ZigZagData pub fn vortex_zigzag::ZigZagData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_zigzag::ZigZagData + +pub fn vortex_zigzag::ZigZagData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_zigzag::ZigZagData pub fn vortex_zigzag::ZigZagData::array_eq(&self, _other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/zigzag/src/array.rs b/encodings/zigzag/src/array.rs index 1ed12b84436..34b1d2d19f6 100644 --- a/encodings/zigzag/src/array.rs +++ b/encodings/zigzag/src/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hasher; use vortex_array::Array; @@ -86,7 +88,10 @@ impl VTable for ZigZag { vortex_panic!("ZigZagArray buffer_name index {idx} out of bounds") } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -164,6 +169,12 @@ pub(super) const SLOT_NAMES: [&str; NUM_SLOTS] = ["encoded"]; #[derive(Clone, Debug)] pub struct ZigZagData {} +impl Display for ZigZagData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub trait ZigZagArrayExt: TypedArrayRef { fn encoded(&self) -> &ArrayRef { self.as_ref().slots()[ENCODED_SLOT] diff --git a/encodings/zstd/public-api.lock b/encodings/zstd/public-api.lock index 3413dd1c75b..44365606591 100644 --- a/encodings/zstd/public-api.lock +++ b/encodings/zstd/public-api.lock @@ -46,7 +46,7 @@ pub fn vortex_zstd::Zstd::nbuffers(array: vortex_array::array::view::ArrayView<' pub fn vortex_zstd::Zstd::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_zstd::Zstd::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_zstd::Zstd::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_zstd::Zstd::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -130,6 +130,10 @@ impl core::fmt::Debug for vortex_zstd::ZstdData pub fn vortex_zstd::ZstdData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_zstd::ZstdData + +pub fn vortex_zstd::ZstdData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_zstd::ZstdData pub fn vortex_zstd::ZstdData::array_eq(&self, other: &Self, precision: vortex_array::hash::Precision) -> bool diff --git a/encodings/zstd/src/array.rs b/encodings/zstd/src/array.rs index 5ab3e09aa3d..e8a3612b06d 100644 --- a/encodings/zstd/src/array.rs +++ b/encodings/zstd/src/array.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; use std::sync::Arc; @@ -173,7 +175,10 @@ impl VTable for Zstd { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(array.metadata.clone().encode_to_vec())) } @@ -324,6 +329,16 @@ pub struct ZstdData { slice_stop: usize, } +impl Display for ZstdData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "nrows: {}, slice: {}..{}", + self.unsliced_n_rows, self.slice_start, self.slice_stop + ) + } +} + pub struct ZstdDataParts { pub dictionary: Option, pub frames: Vec, diff --git a/encodings/zstd/src/zstd_buffers.rs b/encodings/zstd/src/zstd_buffers.rs index a52abbe7ea4..e1712b01c2e 100644 --- a/encodings/zstd/src/zstd_buffers.rs +++ b/encodings/zstd/src/zstd_buffers.rs @@ -2,6 +2,8 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; use std::sync::Arc; @@ -52,10 +54,14 @@ impl ZstdBuffers { Array::try_from_parts(ArrayParts::new(ZstdBuffers, dtype, len, data)) } - pub fn compress(array: &ArrayRef, level: i32) -> VortexResult { + pub fn compress( + array: &ArrayRef, + level: i32, + session: &VortexSession, + ) -> VortexResult { let encoding_id = array.encoding_id(); let metadata = array - .metadata()? + .metadata(session)? .ok_or_else(|| vortex_err!("Array does not support serialization"))?; let buffer_handles = array.buffer_handles(); let children = array.children(); @@ -136,6 +142,12 @@ pub struct ZstdBuffersData { buffer_alignments: Vec, } +impl Display for ZstdBuffersData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "inner_encoding: {}", self.inner_encoding_id) + } +} + #[derive(Clone, Debug)] pub struct ZstdBuffersDecodePlan { compressed_buffers: Vec, @@ -386,7 +398,10 @@ impl VTable for ZstdBuffers { format!("child_{idx}") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( ZstdBuffersMetadata { inner_encoding_id: array.inner_encoding_id.to_string(), @@ -527,7 +542,7 @@ mod tests { #[case::empty_primitive(make_empty_primitive_array())] #[case::inlined_varbinview(make_inlined_varbinview_array())] fn test_roundtrip(#[case] input: ArrayRef) -> VortexResult<()> { - let compressed = ZstdBuffers::compress(&input, 3)?; + let compressed = ZstdBuffers::compress(&input, 3, &LEGACY_SESSION)?; assert_eq!(compressed.len(), input.len()); assert_eq!(compressed.dtype(), input.dtype()); @@ -544,7 +559,7 @@ mod tests { let input = make_primitive_array(); input.statistics().set(Stat::Min, Precision::exact(0i32)); - let compressed = ZstdBuffers::compress(&input, 3)?; + let compressed = ZstdBuffers::compress(&input, 3, &LEGACY_SESSION)?; assert!(compressed.statistics().get(Stat::Min).is_some()); Ok(()) @@ -553,7 +568,7 @@ mod tests { #[test] fn test_validity_delegates_for_nullable_input() -> VortexResult<()> { let input = make_nullable_primitive_array(); - let compressed = ZstdBuffers::compress(&input, 3)?.into_array(); + let compressed = ZstdBuffers::compress(&input, 3, &LEGACY_SESSION)?.into_array(); assert_eq!(compressed.all_valid()?, input.all_valid()?); assert_eq!(compressed.all_invalid()?, input.all_invalid()?); diff --git a/fuzz/src/array/mod.rs b/fuzz/src/array/mod.rs index 9b757d0a8f3..b0dd2c2b242 100644 --- a/fuzz/src/array/mod.rs +++ b/fuzz/src/array/mod.rs @@ -59,6 +59,7 @@ use vortex_array::search_sorted::SearchResult; use vortex_array::search_sorted::SearchSorted; use vortex_array::search_sorted::SearchSortedSide; use vortex_btrblocks::BtrBlocksCompressor; +#[cfg(feature = "zstd")] use vortex_btrblocks::BtrBlocksCompressorBuilder; use vortex_error::VortexExpect; use vortex_error::vortex_panic; diff --git a/vortex-array/public-api.lock b/vortex-array/public-api.lock index 885e2add71e..08dffbab678 100644 --- a/vortex-array/public-api.lock +++ b/vortex-array/public-api.lock @@ -1166,8 +1166,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -1178,7 +1176,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1232,6 +1230,10 @@ impl core::fmt::Debug for vortex_array::arrays::bool::BoolData pub fn vortex_array::arrays::bool::BoolData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::bool::BoolData + +pub fn vortex_array::arrays::bool::BoolData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::bool::BoolData pub fn vortex_array::arrays::bool::BoolData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -1342,8 +1344,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -1354,7 +1354,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1406,6 +1406,10 @@ impl core::fmt::Debug for vortex_array::arrays::chunked::ChunkedData pub fn vortex_array::arrays::chunked::ChunkedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::chunked::ChunkedData + +pub fn vortex_array::arrays::chunked::ChunkedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::chunked::ChunkedData pub fn vortex_array::arrays::chunked::ChunkedData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -1508,8 +1512,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -1520,7 +1522,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1576,6 +1578,10 @@ impl core::fmt::Debug for vortex_array::arrays::constant::ConstantData pub fn vortex_array::arrays::constant::ConstantData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::constant::ConstantData + +pub fn vortex_array::arrays::constant::ConstantData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::constant::ConstantData pub fn vortex_array::arrays::constant::ConstantData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -1690,8 +1696,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -1702,7 +1706,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1784,6 +1788,10 @@ impl core::fmt::Debug for vortex_array::arrays::decimal::DecimalData pub fn vortex_array::arrays::decimal::DecimalData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::decimal::DecimalData + +pub fn vortex_array::arrays::decimal::DecimalData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::decimal::DecimalData pub fn vortex_array::arrays::decimal::DecimalData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -1908,8 +1916,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -1920,7 +1926,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2006,8 +2012,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2018,7 +2022,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2078,6 +2082,10 @@ impl core::fmt::Debug for vortex_array::arrays::dict::DictData pub fn vortex_array::arrays::dict::DictData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::dict::DictData + +pub fn vortex_array::arrays::dict::DictData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::dict::DictData pub fn vortex_array::arrays::dict::DictData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -2292,8 +2300,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2304,7 +2310,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2358,6 +2364,10 @@ impl core::fmt::Debug for vortex_array::arrays::extension::ExtensionData pub fn vortex_array::arrays::extension::ExtensionData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::extension::ExtensionData + +pub fn vortex_array::arrays::extension::ExtensionData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::extension::ExtensionData pub fn vortex_array::arrays::extension::ExtensionData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -2420,8 +2430,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2432,7 +2440,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2464,6 +2472,10 @@ impl core::fmt::Debug for vortex_array::arrays::filter::FilterData pub fn vortex_array::arrays::filter::FilterData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::filter::FilterData + +pub fn vortex_array::arrays::filter::FilterData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::filter::FilterData pub fn vortex_array::arrays::filter::FilterData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -2610,8 +2622,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2622,7 +2632,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2666,6 +2676,10 @@ impl core::fmt::Debug for vortex_array::arrays::fixed_size_list::FixedSizeListDa pub fn vortex_array::arrays::fixed_size_list::FixedSizeListData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::fixed_size_list::FixedSizeListData + +pub fn vortex_array::arrays::fixed_size_list::FixedSizeListData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::fixed_size_list::FixedSizeListData pub fn vortex_array::arrays::fixed_size_list::FixedSizeListData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -2756,8 +2770,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2768,7 +2780,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2820,6 +2832,10 @@ impl core::fmt::Debug for vortex_array::arrays::list::ListData pub fn vortex_array::arrays::list::ListData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::list::ListData + +pub fn vortex_array::arrays::list::ListData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::list::ListData pub fn vortex_array::arrays::list::ListData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -2938,8 +2954,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -2950,7 +2964,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3004,6 +3018,10 @@ impl core::fmt::Debug for vortex_array::arrays::listview::ListViewData pub fn vortex_array::arrays::listview::ListViewData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::listview::ListViewData + +pub fn vortex_array::arrays::listview::ListViewData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::listview::ListViewData pub fn vortex_array::arrays::listview::ListViewData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -3120,8 +3138,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -3132,7 +3148,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3168,6 +3184,10 @@ impl core::fmt::Debug for vortex_array::arrays::masked::MaskedData pub fn vortex_array::arrays::masked::MaskedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::masked::MaskedData + +pub fn vortex_array::arrays::masked::MaskedData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::masked::MaskedData pub fn vortex_array::arrays::masked::MaskedData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -3226,7 +3246,7 @@ pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayVi impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -3248,8 +3268,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -3260,11 +3278,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::null::Null @@ -3290,32 +3308,6 @@ impl vortex_array::scalar_fn::fns::mask::MaskReduce for vortex_array::arrays::nu pub fn vortex_array::arrays::null::Null::mask(array: vortex_array::ArrayView<'_, vortex_array::arrays::null::Null>, _mask: &vortex_array::ArrayRef) -> vortex_error::VortexResult> -pub struct vortex_array::arrays::null::NullData - -impl vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::new() -> Self - -impl core::clone::Clone for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::clone(&self) -> vortex_array::arrays::null::NullData - -impl core::default::Default for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::default() -> Self - -impl core::fmt::Debug for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - -impl vortex_array::ArrayEq for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - -impl vortex_array::ArrayHash for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - pub type vortex_array::arrays::null::NullArray = vortex_array::Array pub mod vortex_array::arrays::patched @@ -3362,8 +3354,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -3374,7 +3364,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3410,6 +3400,10 @@ impl core::fmt::Debug for vortex_array::arrays::patched::PatchedData pub fn vortex_array::arrays::patched::PatchedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::patched::PatchedData + +pub fn vortex_array::arrays::patched::PatchedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::patched::PatchedData pub fn vortex_array::arrays::patched::PatchedData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -3586,8 +3580,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -3598,7 +3590,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3690,6 +3682,10 @@ impl core::fmt::Debug for vortex_array::arrays::primitive::PrimitiveData pub fn vortex_array::arrays::primitive::PrimitiveData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::primitive::PrimitiveData + +pub fn vortex_array::arrays::primitive::PrimitiveData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::primitive::PrimitiveData pub fn vortex_array::arrays::primitive::PrimitiveData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -3826,6 +3822,10 @@ impl core::fmt::Debug for vortex_array::arrays::scalar_fn::ScalarFnData pub fn vortex_array::arrays::scalar_fn::ScalarFnData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::scalar_fn::ScalarFnData + +pub fn vortex_array::arrays::scalar_fn::ScalarFnData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::scalar_fn::ScalarFnData pub fn vortex_array::arrays::scalar_fn::ScalarFnData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -3872,8 +3872,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -3884,7 +3882,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3988,8 +3986,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -4000,7 +3996,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4028,6 +4024,10 @@ impl core::fmt::Debug for vortex_array::arrays::shared::SharedData pub fn vortex_array::arrays::shared::SharedData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::shared::SharedData + +pub fn vortex_array::arrays::shared::SharedData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::shared::SharedData pub fn vortex_array::arrays::shared::SharedData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool @@ -4102,8 +4102,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -4114,7 +4112,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4150,6 +4148,10 @@ impl core::fmt::Debug for vortex_array::arrays::slice::SliceData pub fn vortex_array::arrays::slice::SliceData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::slice::SliceData + +pub fn vortex_array::arrays::slice::SliceData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::slice::SliceData pub fn vortex_array::arrays::slice::SliceData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -4308,7 +4310,7 @@ pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_ impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -4330,8 +4332,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -4342,11 +4342,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Struct @@ -4372,28 +4372,6 @@ impl vortex_array::scalar_fn::fns::zip::ZipKernel for vortex_array::arrays::Stru pub fn vortex_array::arrays::Struct::zip(if_true: vortex_array::ArrayView<'_, vortex_array::arrays::Struct>, if_false: &vortex_array::ArrayRef, mask: &vortex_array::ArrayRef, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub struct vortex_array::arrays::struct_::StructData - -impl core::clone::Clone for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::clone(&self) -> vortex_array::arrays::struct_::StructData - -impl core::default::Default for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::default() -> vortex_array::arrays::struct_::StructData - -impl core::fmt::Debug for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - -impl vortex_array::ArrayEq for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - -impl vortex_array::ArrayHash for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - pub struct vortex_array::arrays::struct_::StructDataParts pub vortex_array::arrays::struct_::StructDataParts::fields: alloc::sync::Arc<[vortex_array::ArrayRef]> @@ -4518,8 +4496,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -4530,7 +4506,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4594,6 +4570,10 @@ impl core::fmt::Debug for vortex_array::arrays::varbin::VarBinData pub fn vortex_array::arrays::varbin::VarBinData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::varbin::VarBinData + +pub fn vortex_array::arrays::varbin::VarBinData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::ArrayEq for vortex_array::arrays::varbin::VarBinData pub fn vortex_array::arrays::varbin::VarBinData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -4886,8 +4866,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -4898,7 +4876,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4978,6 +4956,10 @@ impl core::fmt::Debug for vortex_array::arrays::varbinview::VarBinViewData pub fn vortex_array::arrays::varbinview::VarBinViewData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_array::arrays::varbinview::VarBinViewData + +pub fn vortex_array::arrays::varbinview::VarBinViewData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl core::iter::traits::collect::FromIterator> for vortex_array::arrays::varbinview::VarBinViewData pub fn vortex_array::arrays::varbinview::VarBinViewData::from_iter>>(iter: T) -> Self @@ -5052,7 +5034,7 @@ pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<' impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -5074,8 +5056,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5086,7 +5066,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5096,24 +5076,6 @@ impl vortex_array::ValidityVTable for vortex_arra pub fn vortex_array::arrays::Variant::validity(array: vortex_array::ArrayView<'_, vortex_array::arrays::Variant>) -> vortex_error::VortexResult -pub struct vortex_array::arrays::variant::VariantData - -impl core::clone::Clone for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::clone(&self) -> vortex_array::arrays::variant::VariantData - -impl core::fmt::Debug for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - -impl vortex_array::ArrayEq for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - -impl vortex_array::ArrayHash for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - pub trait vortex_array::arrays::variant::VariantArrayExt: vortex_array::TypedArrayRef pub fn vortex_array::arrays::variant::VariantArrayExt::child(&self) -> &vortex_array::ArrayRef @@ -5166,8 +5128,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5178,7 +5138,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5260,8 +5220,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5272,7 +5230,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5356,8 +5314,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5368,7 +5324,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5448,8 +5404,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5460,7 +5414,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5542,8 +5496,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5554,7 +5506,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5638,8 +5590,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5650,7 +5600,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5726,8 +5676,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5738,7 +5686,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5790,8 +5738,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5802,7 +5748,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5870,8 +5816,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5882,7 +5826,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5954,8 +5898,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -5966,7 +5908,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6034,8 +5976,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6046,7 +5986,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6096,7 +6036,7 @@ pub fn vortex_array::arrays::null::Null::scalar_at(_array: vortex_array::ArrayVi impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -6118,8 +6058,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6130,11 +6068,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::null::Null @@ -6202,8 +6140,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6214,7 +6150,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6282,8 +6218,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6294,7 +6228,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6372,8 +6306,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6384,7 +6316,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6436,8 +6368,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6448,7 +6378,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6500,8 +6430,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6512,7 +6440,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6546,7 +6474,7 @@ pub fn vortex_array::arrays::Struct::scalar_at(array: vortex_array::ArrayView<'_ impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -6568,8 +6496,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6580,11 +6506,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Struct @@ -6656,8 +6582,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6668,7 +6592,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6744,8 +6668,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6756,7 +6678,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6806,7 +6728,7 @@ pub fn vortex_array::arrays::Variant::scalar_at(array: vortex_array::ArrayView<' impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -6828,8 +6750,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -6840,7 +6760,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -18538,7 +18458,7 @@ pub struct vortex_array::serde::ArrayNodeFlatBuffer<'a> impl<'a> vortex_array::serde::ArrayNodeFlatBuffer<'a> -pub fn vortex_array::serde::ArrayNodeFlatBuffer<'a>::try_new(ctx: &'a vortex_array::ArrayContext, array: &'a vortex_array::ArrayRef) -> vortex_error::VortexResult +pub fn vortex_array::serde::ArrayNodeFlatBuffer<'a>::try_new(ctx: &'a vortex_array::ArrayContext, session: &'a vortex_session::VortexSession, array: &'a vortex_array::ArrayRef) -> vortex_error::VortexResult pub fn vortex_array::serde::ArrayNodeFlatBuffer<'a>::try_write_flatbuffer<'fb>(&self, fbb: &mut flatbuffers::builder::FlatBufferBuilder<'fb>) -> vortex_error::VortexResult>> @@ -18642,10 +18562,14 @@ pub fn vortex_array::session::ArraySession::fmt(&self, f: &mut core::fmt::Format pub trait vortex_array::session::ArraySessionExt: vortex_session::SessionExt +pub fn vortex_array::session::ArraySessionExt::array_serialize(&self, array: &vortex_array::ArrayRef) -> vortex_error::VortexResult>> + pub fn vortex_array::session::ArraySessionExt::arrays(&self) -> vortex_session::Ref<'_, vortex_array::session::ArraySession> impl vortex_array::session::ArraySessionExt for S +pub fn S::array_serialize(&self, array: &vortex_array::ArrayRef) -> vortex_error::VortexResult>> + pub fn S::arrays(&self) -> vortex_session::Ref<'_, vortex_array::session::ArraySession> pub type vortex_array::session::ArrayRegistry = vortex_session::registry::Registry @@ -19114,6 +19038,32 @@ pub struct vortex_array::variants::Utf8Typed<'a>(_) pub mod vortex_array::vtable +pub struct vortex_array::vtable::EmptyArrayData + +impl core::clone::Clone for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::clone(&self) -> vortex_array::EmptyArrayData + +impl core::default::Default for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::default() -> vortex_array::EmptyArrayData + +impl core::fmt::Debug for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + +impl core::fmt::Display for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + +impl vortex_array::ArrayEq for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool + +impl vortex_array::ArrayHash for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) + pub struct vortex_array::vtable::NotSupported impl vortex_array::OperationsVTable for vortex_array::NotSupported @@ -19138,15 +19088,19 @@ pub fn vortex_array::vtable::ArrayPlugin::deserialize(&self, dtype: &vortex_arra pub fn vortex_array::vtable::ArrayPlugin::id(&self) -> vortex_array::ArrayId +pub fn vortex_array::vtable::ArrayPlugin::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> + impl vortex_array::ArrayPlugin for V pub fn V::deserialize(&self, dtype: &vortex_array::dtype::DType, len: usize, metadata: &[u8], buffers: &[vortex_array::buffer::BufferHandle], children: &dyn vortex_array::serde::ArrayChildren, session: &vortex_session::VortexSession) -> core::result::Result pub fn V::id(&self) -> arcref::ArcRef +pub fn V::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> core::result::Result>, vortex_error::VortexError> + pub trait vortex_array::vtable::ArrayVTable: 'static + core::clone::Clone + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug -pub type vortex_array::vtable::ArrayVTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + vortex_array::ArrayHash + vortex_array::ArrayEq +pub type vortex_array::vtable::ArrayVTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + core::fmt::Display + vortex_array::ArrayHash + vortex_array::ArrayEq pub type vortex_array::vtable::ArrayVTable::OperationsVTable: vortex_array::OperationsVTable @@ -19168,8 +19122,6 @@ pub fn vortex_array::vtable::ArrayVTable::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::vtable::ArrayVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::vtable::ArrayVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::vtable::ArrayVTable::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19180,7 +19132,7 @@ pub fn vortex_array::vtable::ArrayVTable::reduce(array: vortex_array::ArrayView< pub fn vortex_array::vtable::ArrayVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::vtable::ArrayVTable::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::vtable::ArrayVTable::serialize(array: vortex_array::ArrayView<'_, Self>, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::vtable::ArrayVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19210,8 +19162,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19222,7 +19172,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19252,8 +19202,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19264,7 +19212,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19294,8 +19242,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19306,7 +19252,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19336,8 +19282,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19348,7 +19292,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19378,8 +19322,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19390,7 +19332,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19420,8 +19362,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19432,7 +19372,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19462,8 +19402,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19474,7 +19412,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19504,8 +19442,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19516,7 +19452,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19546,8 +19482,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19558,7 +19492,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19588,8 +19522,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19600,7 +19532,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19630,8 +19562,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19642,7 +19572,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19672,8 +19602,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19684,7 +19612,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19692,7 +19620,7 @@ pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::array impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -19714,8 +19642,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19726,11 +19652,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -19756,8 +19682,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19768,7 +19692,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19798,8 +19722,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19810,7 +19732,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19818,7 +19740,7 @@ pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -19840,8 +19762,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19852,7 +19772,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19882,8 +19802,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19894,7 +19812,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19902,7 +19820,7 @@ pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -19924,8 +19842,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19936,11 +19852,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -19966,8 +19882,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -19978,7 +19892,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20008,8 +19922,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20020,7 +19932,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20050,8 +19962,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20062,7 +19972,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20162,7 +20072,7 @@ pub fn vortex_array::NotSupported::scalar_at(array: vortex_array::ArrayView<'_, pub trait vortex_array::vtable::VTable: 'static + core::clone::Clone + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug -pub type vortex_array::vtable::VTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + vortex_array::ArrayHash + vortex_array::ArrayEq +pub type vortex_array::vtable::VTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + core::fmt::Display + vortex_array::ArrayHash + vortex_array::ArrayEq pub type vortex_array::vtable::VTable::OperationsVTable: vortex_array::OperationsVTable @@ -20184,8 +20094,6 @@ pub fn vortex_array::vtable::VTable::execute(array: vortex_array::Array, c pub fn vortex_array::vtable::VTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::vtable::VTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::vtable::VTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::vtable::VTable::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20196,7 +20104,7 @@ pub fn vortex_array::vtable::VTable::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::vtable::VTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::vtable::VTable::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::vtable::VTable::serialize(array: vortex_array::ArrayView<'_, Self>, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::vtable::VTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20226,8 +20134,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20238,7 +20144,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20268,8 +20174,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20280,7 +20184,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20310,8 +20214,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20322,7 +20224,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20352,8 +20254,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20364,7 +20264,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20394,8 +20294,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20406,7 +20304,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20436,8 +20334,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20448,7 +20344,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20478,8 +20374,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20490,7 +20384,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20520,8 +20414,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20532,7 +20424,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20562,8 +20454,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20574,7 +20464,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20604,8 +20494,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20616,7 +20504,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20646,8 +20534,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20658,7 +20544,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20688,8 +20574,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20700,7 +20584,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20708,7 +20592,7 @@ pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::array impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -20730,8 +20614,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20742,11 +20624,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -20772,8 +20654,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20784,7 +20664,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20814,8 +20694,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20826,7 +20704,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20834,7 +20712,7 @@ pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -20856,8 +20734,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20868,7 +20744,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20898,8 +20774,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20910,7 +20784,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20918,7 +20792,7 @@ pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -20940,8 +20814,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20952,11 +20824,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -20982,8 +20854,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -20994,7 +20864,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -21024,8 +20894,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -21036,7 +20904,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -21066,8 +20934,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -21078,7 +20944,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -21974,7 +21840,7 @@ pub fn vortex_array::ArrayRef::is_valid(&self, index: usize) -> vortex_error::Vo pub fn vortex_array::ArrayRef::len(&self) -> usize -pub fn vortex_array::ArrayRef::metadata(&self) -> vortex_error::VortexResult>> +pub fn vortex_array::ArrayRef::metadata(&self, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::ArrayRef::metadata_fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result @@ -22080,7 +21946,7 @@ pub fn vortex_array::ArrayRef::ptr_eq(this: &vortex_array::ArrayRef, other: &vor impl vortex_array::ArrayRef -pub fn vortex_array::ArrayRef::serialize(&self, ctx: &vortex_array::ArrayContext, options: &vortex_array::serde::SerializeOptions) -> vortex_error::VortexResult> +pub fn vortex_array::ArrayRef::serialize(&self, ctx: &vortex_array::ArrayContext, session: &vortex_session::VortexSession, options: &vortex_array::serde::SerializeOptions) -> vortex_error::VortexResult> impl vortex_array::ArrayRef @@ -22448,6 +22314,32 @@ pub type vortex_array::DepthFirstArrayIterator::Item = vortex_array::ArrayRef pub fn vortex_array::DepthFirstArrayIterator::next(&mut self) -> core::option::Option +pub struct vortex_array::EmptyArrayData + +impl core::clone::Clone for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::clone(&self) -> vortex_array::EmptyArrayData + +impl core::default::Default for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::default() -> vortex_array::EmptyArrayData + +impl core::fmt::Debug for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + +impl core::fmt::Display for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::fmt(&self, _f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + +impl vortex_array::ArrayEq for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool + +impl vortex_array::ArrayHash for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) + pub struct vortex_array::EmptyMetadata impl core::fmt::Debug for vortex_array::EmptyMetadata @@ -22610,6 +22502,10 @@ impl vortex_array::ArrayEq for vortex_array::ArrayRef pub fn vortex_array::ArrayRef::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool +impl vortex_array::ArrayEq for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool + impl vortex_array::ArrayEq for vortex_array::arrays::bool::BoolData pub fn vortex_array::arrays::bool::BoolData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -22654,10 +22550,6 @@ impl vortex_array::ArrayEq for vortex_array::arrays::masked::MaskedData pub fn vortex_array::arrays::masked::MaskedData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool -impl vortex_array::ArrayEq for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - impl vortex_array::ArrayEq for vortex_array::arrays::patched::PatchedData pub fn vortex_array::arrays::patched::PatchedData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool @@ -22678,10 +22570,6 @@ impl vortex_array::ArrayEq for vortex_array::arrays::slice::SliceData pub fn vortex_array::arrays::slice::SliceData::array_eq(&self, other: &Self, _precision: vortex_array::Precision) -> bool -impl vortex_array::ArrayEq for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - impl vortex_array::ArrayEq for vortex_array::arrays::varbin::VarBinData pub fn vortex_array::arrays::varbin::VarBinData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -22690,10 +22578,6 @@ impl vortex_array::ArrayEq for vortex_array::arrays::varbinview::VarBinViewData pub fn vortex_array::arrays::varbinview::VarBinViewData::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool -impl vortex_array::ArrayEq for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::array_eq(&self, _other: &Self, _precision: vortex_array::Precision) -> bool - impl vortex_array::ArrayEq for vortex_array::buffer::BufferHandle pub fn vortex_array::buffer::BufferHandle::array_eq(&self, other: &Self, precision: vortex_array::Precision) -> bool @@ -22730,6 +22614,10 @@ impl vortex_array::ArrayHash for vortex_array::ArrayRef pub fn vortex_array::ArrayRef::array_hash(&self, state: &mut H, precision: vortex_array::Precision) +impl vortex_array::ArrayHash for vortex_array::EmptyArrayData + +pub fn vortex_array::EmptyArrayData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) + impl vortex_array::ArrayHash for vortex_array::arrays::bool::BoolData pub fn vortex_array::arrays::bool::BoolData::array_hash(&self, state: &mut H, precision: vortex_array::Precision) @@ -22774,10 +22662,6 @@ impl vortex_array::ArrayHash for vortex_array::arrays::masked::MaskedData pub fn vortex_array::arrays::masked::MaskedData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) -impl vortex_array::ArrayHash for vortex_array::arrays::null::NullData - -pub fn vortex_array::arrays::null::NullData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - impl vortex_array::ArrayHash for vortex_array::arrays::patched::PatchedData pub fn vortex_array::arrays::patched::PatchedData::array_hash(&self, state: &mut H, _precision: vortex_array::Precision) @@ -22798,10 +22682,6 @@ impl vortex_array::ArrayHash for vortex_array::arrays::slice::SliceData pub fn vortex_array::arrays::slice::SliceData::array_hash(&self, state: &mut H, _precision: vortex_array::Precision) -impl vortex_array::ArrayHash for vortex_array::arrays::struct_::StructData - -pub fn vortex_array::arrays::struct_::StructData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - impl vortex_array::ArrayHash for vortex_array::arrays::varbin::VarBinData pub fn vortex_array::arrays::varbin::VarBinData::array_hash(&self, state: &mut H, precision: vortex_array::Precision) @@ -22810,10 +22690,6 @@ impl vortex_array::ArrayHash for vortex_array::arrays::varbinview::VarBinViewDat pub fn vortex_array::arrays::varbinview::VarBinViewData::array_hash(&self, state: &mut H, precision: vortex_array::Precision) -impl vortex_array::ArrayHash for vortex_array::arrays::variant::VariantData - -pub fn vortex_array::arrays::variant::VariantData::array_hash(&self, _state: &mut H, _precision: vortex_array::Precision) - impl vortex_array::ArrayHash for vortex_array::buffer::BufferHandle pub fn vortex_array::buffer::BufferHandle::array_hash(&self, state: &mut H, precision: vortex_array::Precision) @@ -22854,6 +22730,10 @@ pub fn vortex_array::ArrayPlugin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::ArrayPlugin::id(&self) -> vortex_array::ArrayId +pub fn vortex_array::ArrayPlugin::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> + +pub fn vortex_array::ArrayPlugin::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> + impl vortex_array::ArrayPlugin for V impl vortex_array::ArrayPlugin for V @@ -22866,9 +22746,13 @@ pub fn V::id(&self) -> arcref::ArcRef pub fn V::id(&self) -> arcref::ArcRef +pub fn V::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> core::result::Result>, vortex_error::VortexError> + +pub fn V::serialize(&self, array: &vortex_array::ArrayRef, session: &vortex_session::VortexSession) -> core::result::Result>, vortex_error::VortexError> + pub trait vortex_array::ArrayVTable: 'static + core::clone::Clone + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug -pub type vortex_array::ArrayVTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + vortex_array::ArrayHash + vortex_array::ArrayEq +pub type vortex_array::ArrayVTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + core::fmt::Display + vortex_array::ArrayHash + vortex_array::ArrayEq pub type vortex_array::ArrayVTable::OperationsVTable: vortex_array::OperationsVTable @@ -22890,8 +22774,6 @@ pub fn vortex_array::ArrayVTable::execute(array: vortex_array::Array, ctx: pub fn vortex_array::ArrayVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::ArrayVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::ArrayVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::ArrayVTable::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -22902,7 +22784,7 @@ pub fn vortex_array::ArrayVTable::reduce(array: vortex_array::ArrayView<'_, Self pub fn vortex_array::ArrayVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::ArrayVTable::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::ArrayVTable::serialize(array: vortex_array::ArrayView<'_, Self>, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::ArrayVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22932,8 +22814,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -22944,7 +22824,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22974,8 +22854,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -22986,7 +22864,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23016,8 +22894,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23028,7 +22904,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23058,8 +22934,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23070,7 +22944,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23100,8 +22974,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23112,7 +22984,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23142,8 +23014,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23154,7 +23024,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23184,8 +23054,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23196,7 +23064,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23226,8 +23094,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23238,7 +23104,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23268,8 +23134,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23280,7 +23144,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23310,8 +23174,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23322,7 +23184,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23352,8 +23214,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23364,7 +23224,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23394,8 +23254,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23406,7 +23264,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23414,7 +23272,7 @@ pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::array impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -23436,8 +23294,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23448,11 +23304,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -23478,8 +23334,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23490,7 +23344,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23520,8 +23374,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23532,7 +23384,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23540,7 +23392,7 @@ pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -23562,8 +23414,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23574,7 +23424,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23604,8 +23454,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23616,7 +23464,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23624,7 +23472,7 @@ pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -23646,8 +23494,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23658,11 +23504,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -23688,8 +23534,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23700,7 +23544,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23730,8 +23574,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23742,7 +23584,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23772,8 +23614,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -23784,7 +23624,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24132,7 +23972,7 @@ pub fn vortex_array::ArrayView<'_, V>::to_owned(&self) -> vortex_array::Array pub trait vortex_array::VTable: 'static + core::clone::Clone + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug -pub type vortex_array::VTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + vortex_array::ArrayHash + vortex_array::ArrayEq +pub type vortex_array::VTable::ArrayData: 'static + core::marker::Send + core::marker::Sync + core::clone::Clone + core::fmt::Debug + core::fmt::Display + vortex_array::ArrayHash + vortex_array::ArrayEq pub type vortex_array::VTable::OperationsVTable: vortex_array::OperationsVTable @@ -24154,8 +23994,6 @@ pub fn vortex_array::VTable::execute(array: vortex_array::Array, ctx: &mut pub fn vortex_array::VTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::VTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::VTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::VTable::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24166,7 +24004,7 @@ pub fn vortex_array::VTable::reduce(array: vortex_array::ArrayView<'_, Self>) -> pub fn vortex_array::VTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::VTable::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::VTable::serialize(array: vortex_array::ArrayView<'_, Self>, session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::VTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24196,8 +24034,6 @@ pub fn vortex_array::arrays::Bool::execute(array: vortex_array::Array, _ct pub fn vortex_array::arrays::Bool::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Bool::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Bool::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24208,7 +24044,7 @@ pub fn vortex_array::arrays::Bool::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24238,8 +24074,6 @@ pub fn vortex_array::arrays::Chunked::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Chunked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Chunked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Chunked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24250,7 +24084,7 @@ pub fn vortex_array::arrays::Chunked::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24280,8 +24114,6 @@ pub fn vortex_array::arrays::Constant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Constant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Constant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Constant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24292,7 +24124,7 @@ pub fn vortex_array::arrays::Constant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24322,8 +24154,6 @@ pub fn vortex_array::arrays::Decimal::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Decimal::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Decimal::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Decimal::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24334,7 +24164,7 @@ pub fn vortex_array::arrays::Decimal::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24364,8 +24194,6 @@ pub fn vortex_array::arrays::Extension::execute(array: vortex_array::Array pub fn vortex_array::arrays::Extension::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Extension::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Extension::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24376,7 +24204,7 @@ pub fn vortex_array::arrays::Extension::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Extension::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24406,8 +24234,6 @@ pub fn vortex_array::arrays::Filter::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Filter::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Filter::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Filter::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24418,7 +24244,7 @@ pub fn vortex_array::arrays::Filter::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Filter::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24448,8 +24274,6 @@ pub fn vortex_array::arrays::FixedSizeList::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::FixedSizeList::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::FixedSizeList::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24460,7 +24284,7 @@ pub fn vortex_array::arrays::FixedSizeList::reduce(array: vortex_array::ArrayVie pub fn vortex_array::arrays::FixedSizeList::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24490,8 +24314,6 @@ pub fn vortex_array::arrays::List::execute(array: vortex_array::Array, ctx pub fn vortex_array::arrays::List::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::List::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::List::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24502,7 +24324,7 @@ pub fn vortex_array::arrays::List::reduce(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::List::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24532,8 +24354,6 @@ pub fn vortex_array::arrays::ListView::execute(array: vortex_array::Array, pub fn vortex_array::arrays::ListView::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::ListView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::ListView::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24544,7 +24364,7 @@ pub fn vortex_array::arrays::ListView::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::ListView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24574,8 +24394,6 @@ pub fn vortex_array::arrays::Masked::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Masked::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Masked::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Masked::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24586,7 +24404,7 @@ pub fn vortex_array::arrays::Masked::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Masked::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24616,8 +24434,6 @@ pub fn vortex_array::arrays::Primitive::execute(array: vortex_array::Array pub fn vortex_array::arrays::Primitive::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Primitive::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Primitive::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24628,7 +24444,7 @@ pub fn vortex_array::arrays::Primitive::reduce(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24658,8 +24474,6 @@ pub fn vortex_array::arrays::Shared::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::Shared::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Shared::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Shared::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24670,7 +24484,7 @@ pub fn vortex_array::arrays::Shared::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Shared::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24678,7 +24492,7 @@ pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::array impl vortex_array::VTable for vortex_array::arrays::Struct -pub type vortex_array::arrays::Struct::ArrayData = vortex_array::arrays::struct_::StructData +pub type vortex_array::arrays::Struct::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Struct::OperationsVTable = vortex_array::arrays::Struct @@ -24700,8 +24514,6 @@ pub fn vortex_array::arrays::Struct::execute(array: vortex_array::Array, _ pub fn vortex_array::arrays::Struct::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Struct::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Struct::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24712,11 +24524,11 @@ pub fn vortex_array::arrays::Struct::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::Struct::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::arrays::struct_::StructData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::Struct::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -24742,8 +24554,6 @@ pub fn vortex_array::arrays::VarBin::execute(array: vortex_array::Array, c pub fn vortex_array::arrays::VarBin::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBin::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBin::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24754,7 +24564,7 @@ pub fn vortex_array::arrays::VarBin::reduce(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24784,8 +24594,6 @@ pub fn vortex_array::arrays::VarBinView::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::VarBinView::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::VarBinView::nbuffers(array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24796,7 +24604,7 @@ pub fn vortex_array::arrays::VarBinView::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24804,7 +24612,7 @@ pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::Variant -pub type vortex_array::arrays::Variant::ArrayData = vortex_array::arrays::variant::VariantData +pub type vortex_array::arrays::Variant::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::Variant::OperationsVTable = vortex_array::arrays::Variant @@ -24826,8 +24634,6 @@ pub fn vortex_array::arrays::Variant::execute(array: vortex_array::Array, pub fn vortex_array::arrays::Variant::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::Variant::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::Variant::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24838,7 +24644,7 @@ pub fn vortex_array::arrays::Variant::reduce(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24868,8 +24674,6 @@ pub fn vortex_array::arrays::dict::Dict::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::dict::Dict::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::dict::Dict::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24880,7 +24684,7 @@ pub fn vortex_array::arrays::dict::Dict::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::dict::Dict::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24888,7 +24692,7 @@ pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::ar impl vortex_array::VTable for vortex_array::arrays::null::Null -pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::arrays::null::NullData +pub type vortex_array::arrays::null::Null::ArrayData = vortex_array::EmptyArrayData pub type vortex_array::arrays::null::Null::OperationsVTable = vortex_array::arrays::null::Null @@ -24910,8 +24714,6 @@ pub fn vortex_array::arrays::null::Null::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::null::Null::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::null::Null::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24922,11 +24724,11 @@ pub fn vortex_array::arrays::null::Null::reduce(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::null::Null::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::null::Null::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String -pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::arrays::null::NullData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> +pub fn vortex_array::arrays::null::Null::validate(&self, _data: &vortex_array::EmptyArrayData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -24952,8 +24754,6 @@ pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::patched::Patched::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::patched::Patched::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -24964,7 +24764,7 @@ pub fn vortex_array::arrays::patched::Patched::reduce(array: vortex_array::Array pub fn vortex_array::arrays::patched::Patched::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24994,8 +24794,6 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute(array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::execute_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -25006,7 +24804,7 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce(array: vortex_arr pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -25036,8 +24834,6 @@ pub fn vortex_array::arrays::slice::Slice::execute(array: vortex_array::Array, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::fmt_metadata(array: vortex_array::ArrayView<'_, Self>, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result - pub fn vortex_array::arrays::slice::Slice::id(&self) -> vortex_array::ArrayId pub fn vortex_array::arrays::slice::Slice::nbuffers(_array: vortex_array::ArrayView<'_, Self>) -> usize @@ -25048,7 +24844,7 @@ pub fn vortex_array::arrays::slice::Slice::reduce(array: vortex_array::ArrayView pub fn vortex_array::arrays::slice::Slice::reduce_parent(array: vortex_array::ArrayView<'_, Self>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String diff --git a/vortex-array/src/array/erased.rs b/vortex-array/src/array/erased.rs index cb5d2e1bb86..c2fea73dd73 100644 --- a/vortex-array/src/array/erased.rs +++ b/vortex-array/src/array/erased.rs @@ -15,6 +15,7 @@ use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_error::vortex_panic; use vortex_mask::Mask; +use vortex_session::VortexSession; use crate::AnyCanonical; use crate::Array; @@ -563,13 +564,13 @@ impl ArrayRef { } /// Returns the serialized metadata of the array. - pub fn metadata(&self) -> VortexResult>> { - self.0.metadata(self) + pub fn metadata(&self, session: &VortexSession) -> VortexResult>> { + self.0.metadata(self, session) } /// Formats a human-readable metadata description. pub fn metadata_fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - self.0.metadata_fmt(self, f) + self.0.metadata_fmt(f) } /// Returns whether all buffers are host-resident. diff --git a/vortex-array/src/array/mod.rs b/vortex-array/src/array/mod.rs index f6ed110e172..75331ddc065 100644 --- a/vortex-array/src/array/mod.rs +++ b/vortex-array/src/array/mod.rs @@ -14,6 +14,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_error::vortex_panic; +use vortex_session::VortexSession; use crate::ExecutionCtx; use crate::LEGACY_SESSION; @@ -130,10 +131,10 @@ pub(crate) trait DynArray: 'static + private::Sealed + Send + Sync + Debug { /// Returns the serialized metadata of the array, or `None` if the array does not /// support serialization. - fn metadata(&self, this: &ArrayRef) -> VortexResult>>; + fn metadata(&self, this: &ArrayRef, session: &VortexSession) -> VortexResult>>; /// Formats a human-readable metadata description. - fn metadata_fmt(&self, this: &ArrayRef, f: &mut Formatter<'_>) -> std::fmt::Result; + fn metadata_fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result; /// Hashes the array contents including len, dtype, and encoding id. fn dyn_array_hash(&self, state: &mut dyn Hasher, precision: crate::Precision); @@ -337,14 +338,13 @@ impl DynArray for ArrayInner { V::slot_name(view, idx) } - fn metadata(&self, this: &ArrayRef) -> VortexResult>> { + fn metadata(&self, this: &ArrayRef, session: &VortexSession) -> VortexResult>> { let view = unsafe { ArrayView::new_unchecked(this, &self.data) }; - V::serialize(view) + V::serialize(view, session) } - fn metadata_fmt(&self, this: &ArrayRef, f: &mut Formatter<'_>) -> std::fmt::Result { - let view = unsafe { ArrayView::new_unchecked(this, &self.data) }; - V::fmt_metadata(view, f) + fn metadata_fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + std::fmt::Display::fmt(&self.data, f) } fn dyn_array_hash(&self, state: &mut dyn Hasher, precision: crate::Precision) { diff --git a/vortex-array/src/array/plugin.rs b/vortex-array/src/array/plugin.rs index 29be07aaed6..bff76a30c59 100644 --- a/vortex-array/src/array/plugin.rs +++ b/vortex-array/src/array/plugin.rs @@ -29,7 +29,17 @@ pub trait ArrayPlugin: 'static + Send + Sync { /// Returns the ID for this array encoding. fn id(&self) -> ArrayId; + /// Serialize the array metadata. + /// + /// This function will only be called for arrays where the encoding ID matches that of this + /// plugin. + fn serialize(&self, array: &ArrayRef, session: &VortexSession) + -> VortexResult>>; + /// Deserialize an array from serialized components. + /// + /// The returned array doesn't necessary have to match this plugin's encoding ID. This is + /// useful for implementing back-compat logic and deserializing arrays into the new version. #[allow(clippy::too_many_arguments)] fn deserialize( &self, @@ -53,6 +63,19 @@ impl ArrayPlugin for V { VTable::id(self) } + fn serialize( + &self, + array: &ArrayRef, + session: &VortexSession, + ) -> VortexResult>> { + assert_eq!( + self.id(), + array.encoding_id(), + "Invoked for incorrect array ID" + ); + V::serialize(array.as_::(), session) + } + fn deserialize( &self, dtype: &DType, diff --git a/vortex-array/src/array/vtable/mod.rs b/vortex-array/src/array/vtable/mod.rs index 930be7a279c..2b65853bb88 100644 --- a/vortex-array/src/array/vtable/mod.rs +++ b/vortex-array/src/array/vtable/mod.rs @@ -7,7 +7,9 @@ mod operations; mod validity; use std::fmt::Debug; +use std::fmt::Display; use std::fmt::Formatter; +use std::hash::Hasher; pub use operations::*; pub use validity::*; @@ -22,6 +24,7 @@ use crate::ArrayView; use crate::Canonical; use crate::ExecutionResult; use crate::IntoArray; +use crate::Precision; pub use crate::array::plugin::*; use crate::arrays::ConstantArray; use crate::arrays::constant::Constant; @@ -51,7 +54,7 @@ use crate::validity::Validity; /// out of bounds). Post-conditions are validated after invocation of the vtable function and will /// panic if violated. pub trait VTable: 'static + Clone + Sized + Send + Sync + Debug { - type ArrayData: 'static + Send + Sync + Clone + Debug + ArrayHash + ArrayEq; + type ArrayData: 'static + Send + Sync + Clone + Debug + Display + ArrayHash + ArrayEq; type OperationsVTable: OperationsVTable; type ValidityVTable: ValidityVTable; @@ -121,15 +124,10 @@ pub trait VTable: 'static + Clone + Sized + Send + Sync + Debug { /// Serialize metadata into a byte buffer for IPC or file storage. /// Return `None` if the array cannot be serialized. - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>>; - - /// Formats a human-readable metadata description for display tooling. - fn fmt_metadata(array: ArrayView<'_, Self>, f: &mut Formatter<'_>) -> std::fmt::Result { - match Self::serialize(array) { - Ok(Some(metadata)) if metadata.is_empty() => f.write_str("EmptyMetadata"), - _ => Debug::fmt(array.data(), f), - } - } + fn serialize( + array: ArrayView<'_, Self>, + session: &VortexSession, + ) -> VortexResult>>; /// Deserialize an array from serialized components. fn deserialize( @@ -220,6 +218,25 @@ pub use VTable as ArrayVTable; use crate::array::ArrayId; +/// Empty array metadata struct for encodings with no per-array metadata. +#[derive(Clone, Debug, Default)] +pub struct EmptyArrayData; + +impl ArrayEq for EmptyArrayData { + fn array_eq(&self, _other: &Self, _precision: Precision) -> bool { + true + } +} +impl ArrayHash for EmptyArrayData { + fn array_hash(&self, _state: &mut H, _precision: Precision) {} +} + +impl Display for EmptyArrayData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + /// Placeholder type used to indicate when a particular vtable is not supported by the encoding. pub struct NotSupported; diff --git a/vortex-array/src/arrays/bool/array.rs b/vortex-array/src/arrays/bool/array.rs index 256c19210c9..8a7eed44037 100644 --- a/vortex-array/src/arrays/bool/array.rs +++ b/vortex-array/src/arrays/bool/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use arrow_array::BooleanArray; use vortex_buffer::BitBuffer; use vortex_buffer::BitBufferMut; @@ -65,6 +68,12 @@ pub struct BoolData { pub(super) offset: usize, } +impl Display for BoolData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "offset: {}", self.offset) + } +} + pub struct BoolDataParts { pub bits: BufferHandle, pub offset: usize, diff --git a/vortex-array/src/arrays/bool/vtable/mod.rs b/vortex-array/src/arrays/bool/vtable/mod.rs index 96b978a6ff5..d02a8da22cf 100644 --- a/vortex-array/src/arrays/bool/vtable/mod.rs +++ b/vortex-array/src/arrays/bool/vtable/mod.rs @@ -1,7 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors -use std::fmt::Formatter; use std::hash::Hash; use std::hash::Hasher; @@ -88,7 +87,10 @@ impl VTable for Bool { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { assert!(array.offset < 8, "Offset must be <8, got {}", array.offset); Ok(Some( BoolMetadata { @@ -98,10 +100,6 @@ impl VTable for Bool { )) } - fn fmt_metadata(array: ArrayView<'_, Self>, f: &mut Formatter<'_>) -> std::fmt::Result { - write!(f, "BoolMetadata {{ offset: {} }}", array.offset) - } - fn validate( &self, data: &BoolData, @@ -219,7 +217,7 @@ mod tests { let serialized = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); diff --git a/vortex-array/src/arrays/chunked/array.rs b/vortex-array/src/arrays/chunked/array.rs index 7b4d362e6d8..4537b685fa0 100644 --- a/vortex-array/src/arrays/chunked/array.rs +++ b/vortex-array/src/arrays/chunked/array.rs @@ -6,6 +6,8 @@ //! Vortex is a chunked array library that's able to use std::fmt::Debug; +use std::fmt::Display; +use std::fmt::Formatter; use futures::stream; use vortex_buffer::BufferMut; @@ -37,6 +39,12 @@ pub struct ChunkedData { pub(super) chunk_offsets: Vec, } +impl Display for ChunkedData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "nchunks: {}", self.chunk_offsets.len().saturating_sub(1)) + } +} + pub trait ChunkedArrayExt: TypedArrayRef { fn chunk_offsets_array(&self) -> &ArrayRef { self.as_ref().slots()[CHUNK_OFFSETS_SLOT] diff --git a/vortex-array/src/arrays/chunked/vtable/mod.rs b/vortex-array/src/arrays/chunked/vtable/mod.rs index 23e8b388e32..29e4b397d35 100644 --- a/vortex-array/src/arrays/chunked/vtable/mod.rs +++ b/vortex-array/src/arrays/chunked/vtable/mod.rs @@ -77,22 +77,6 @@ impl VTable for Chunked { Self::ID } - fn nbuffers(_array: ArrayView<'_, Self>) -> usize { - 0 - } - - fn buffer(_array: ArrayView<'_, Self>, idx: usize) -> BufferHandle { - vortex_panic!("ChunkedArray buffer index {idx} out of bounds") - } - - fn buffer_name(_array: ArrayView<'_, Self>, idx: usize) -> Option { - vortex_panic!("ChunkedArray buffer_name index {idx} out of bounds") - } - - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { - Ok(Some(vec![])) - } - fn validate( &self, data: &ChunkedData, @@ -161,6 +145,25 @@ impl VTable for Chunked { Ok(()) } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { + 0 + } + + fn buffer(_array: ArrayView<'_, Self>, idx: usize) -> BufferHandle { + vortex_panic!("ChunkedArray buffer index {idx} out of bounds") + } + + fn buffer_name(_array: ArrayView<'_, Self>, idx: usize) -> Option { + vortex_panic!("ChunkedArray buffer_name index {idx} out of bounds") + } + + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { + Ok(Some(vec![])) + } + fn deserialize( &self, dtype: &DType, @@ -218,13 +221,6 @@ impl VTable for Chunked { .with_slots(slots)) } - fn slot_name(_array: ArrayView<'_, Self>, idx: usize) -> String { - match idx { - CHUNK_OFFSETS_SLOT => "chunk_offsets".to_string(), - n => format!("chunks[{}]", n - CHUNKS_OFFSET), - } - } - fn append_to_builder( array: ArrayView<'_, Self>, builder: &mut dyn ArrayBuilder, @@ -236,10 +232,26 @@ impl VTable for Chunked { Ok(()) } + fn slot_name(_array: ArrayView<'_, Self>, idx: usize) -> String { + match idx { + CHUNK_OFFSETS_SLOT => "chunk_offsets".to_string(), + n => format!("chunks[{}]", n - CHUNKS_OFFSET), + } + } + fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { Ok(ExecutionResult::done(_canonicalize(array.as_view(), ctx)?)) } + fn execute_parent( + array: ArrayView<'_, Self>, + parent: &ArrayRef, + child_idx: usize, + ctx: &mut ExecutionCtx, + ) -> VortexResult> { + PARENT_KERNELS.execute(array, parent, child_idx, ctx) + } + fn reduce(array: ArrayView<'_, Self>) -> VortexResult> { Ok(match array.nchunks() { 0 => Some(Canonical::empty(array.dtype()).into_array()), @@ -255,13 +267,4 @@ impl VTable for Chunked { ) -> VortexResult> { PARENT_RULES.evaluate(array, parent, child_idx) } - - fn execute_parent( - array: ArrayView<'_, Self>, - parent: &ArrayRef, - child_idx: usize, - ctx: &mut ExecutionCtx, - ) -> VortexResult> { - PARENT_KERNELS.execute(array, parent, child_idx, ctx) - } } diff --git a/vortex-array/src/arrays/constant/array.rs b/vortex-array/src/arrays/constant/array.rs index 1acc4e898bc..c6b47cd0a17 100644 --- a/vortex-array/src/arrays/constant/array.rs +++ b/vortex-array/src/arrays/constant/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use crate::array::Array; use crate::array::ArrayParts; use crate::arrays::Constant; @@ -11,6 +14,12 @@ pub struct ConstantData { pub(super) scalar: Scalar, } +impl Display for ConstantData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "scalar: {}", self.scalar) + } +} + impl ConstantData { pub fn new(scalar: S) -> Self where diff --git a/vortex-array/src/arrays/constant/vtable/mod.rs b/vortex-array/src/arrays/constant/vtable/mod.rs index c462c8651d2..d6f1c6ab2d3 100644 --- a/vortex-array/src/arrays/constant/vtable/mod.rs +++ b/vortex-array/src/arrays/constant/vtable/mod.rs @@ -115,7 +115,10 @@ impl VTable for Constant { vortex_panic!("ConstantArray slot_name index {idx} out of bounds") } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { // HACK: Because the scalar is stored in the buffers, we do not need to serialize the // metadata at all. Ok(Some(vec![])) diff --git a/vortex-array/src/arrays/decimal/array.rs b/vortex-array/src/arrays/decimal/array.rs index 4a1de72b520..7bddbb8afb2 100644 --- a/vortex-array/src/arrays/decimal/array.rs +++ b/vortex-array/src/arrays/decimal/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use itertools::Itertools; use vortex_buffer::Alignment; use vortex_buffer::BitBufferMut; @@ -105,6 +108,16 @@ pub struct DecimalData { pub(super) values_type: DecimalType, } +impl Display for DecimalData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "decimal_dtype: {}, values_type: {}", + self.decimal_dtype, self.values_type + ) + } +} + pub struct DecimalDataParts { pub decimal_dtype: DecimalDType, pub values: BufferHandle, diff --git a/vortex-array/src/arrays/decimal/vtable/mod.rs b/vortex-array/src/arrays/decimal/vtable/mod.rs index ff4070bdff3..1894466ed6b 100644 --- a/vortex-array/src/arrays/decimal/vtable/mod.rs +++ b/vortex-array/src/arrays/decimal/vtable/mod.rs @@ -89,7 +89,10 @@ impl VTable for Decimal { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( DecimalMetadata { values_type: array.values_type() as i32, @@ -233,7 +236,7 @@ mod tests { let ctx = ArrayContext::empty(); let out = array .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); // Concat into a single buffer let mut concat = ByteBufferMut::empty(); @@ -264,7 +267,7 @@ mod tests { let out = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); for buf in out { diff --git a/vortex-array/src/arrays/dict/array.rs b/vortex-array/src/arrays/dict/array.rs index 84e4c141470..62dba123c0b 100644 --- a/vortex-array/src/arrays/dict/array.rs +++ b/vortex-array/src/arrays/dict/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_buffer::BitBuffer; use vortex_error::VortexExpect; use vortex_error::VortexResult; @@ -51,6 +54,12 @@ pub struct DictData { pub(super) all_values_referenced: bool, } +impl Display for DictData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "all_values_referenced: {}", self.all_values_referenced) + } +} + impl DictData { /// Build a new `DictArray` without validating the codes or values. /// diff --git a/vortex-array/src/arrays/dict/vtable/mod.rs b/vortex-array/src/arrays/dict/vtable/mod.rs index e3192d3040e..396cb9bb914 100644 --- a/vortex-array/src/arrays/dict/vtable/mod.rs +++ b/vortex-array/src/arrays/dict/vtable/mod.rs @@ -113,7 +113,10 @@ impl VTable for Dict { None } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( DictMetadata { codes_ptype: PType::try_from(array.codes().dtype())? as i32, diff --git a/vortex-array/src/arrays/extension/array.rs b/vortex-array/src/arrays/extension/array.rs index 5cd178d89e8..4ff2ad1bcfb 100644 --- a/vortex-array/src/arrays/extension/array.rs +++ b/vortex-array/src/arrays/extension/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_error::VortexExpect; use vortex_error::VortexResult; @@ -61,6 +64,12 @@ pub struct ExtensionData { pub(super) ext_dtype: ExtDTypeRef, } +impl Display for ExtensionData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "ext_dtype: {}", self.ext_dtype) + } +} + impl ExtensionData { /// Constructs a new `ExtensionArray`. /// diff --git a/vortex-array/src/arrays/extension/vtable/mod.rs b/vortex-array/src/arrays/extension/vtable/mod.rs index 91cbe67ffe9..ba403403dbe 100644 --- a/vortex-array/src/arrays/extension/vtable/mod.rs +++ b/vortex-array/src/arrays/extension/vtable/mod.rs @@ -73,7 +73,10 @@ impl VTable for Extension { SLOT_NAMES[idx].to_string() } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } diff --git a/vortex-array/src/arrays/filter/array.rs b/vortex-array/src/arrays/filter/array.rs index efe362337f4..8367c8009e9 100644 --- a/vortex-array/src/arrays/filter/array.rs +++ b/vortex-array/src/arrays/filter/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_ensure_eq; @@ -28,6 +31,12 @@ pub struct FilterData { pub(super) mask: Mask, } +impl Display for FilterData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "mask_len: {}", self.mask.len()) + } +} + pub struct FilterDataParts { pub mask: Mask, } diff --git a/vortex-array/src/arrays/filter/vtable.rs b/vortex-array/src/arrays/filter/vtable.rs index 78ef1de9a2b..8eb7fb62213 100644 --- a/vortex-array/src/arrays/filter/vtable.rs +++ b/vortex-array/src/arrays/filter/vtable.rs @@ -124,7 +124,10 @@ impl VTable for Filter { SLOT_NAMES[idx].to_string() } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { // TODO(joe): make this configurable vortex_bail!("Filter array is not serializable") } diff --git a/vortex-array/src/arrays/fixed_size_list/array.rs b/vortex-array/src/arrays/fixed_size_list/array.rs index 47d5bfc72e3..dcbee9f8f6f 100644 --- a/vortex-array/src/arrays/fixed_size_list/array.rs +++ b/vortex-array/src/arrays/fixed_size_list/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use vortex_error::VortexExpect; @@ -92,6 +94,12 @@ pub struct FixedSizeListData { pub(super) degenerate_len: usize, } +impl Display for FixedSizeListData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "degenerate_len: {}", self.degenerate_len) + } +} + pub struct FixedSizeListDataParts { pub elements: ArrayRef, pub validity: Validity, diff --git a/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs b/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs index 8936d3bc54d..b2c02ec6891 100644 --- a/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs +++ b/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs @@ -97,7 +97,10 @@ impl VTable for FixedSizeList { Self::PARENT_KERNELS.execute(array, parent, child_idx, ctx) } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } diff --git a/vortex-array/src/arrays/list/array.rs b/vortex-array/src/arrays/list/array.rs index 12f1b76d477..75db7d0f08c 100644 --- a/vortex-array/src/arrays/list/array.rs +++ b/vortex-array/src/arrays/list/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use num_traits::AsPrimitive; @@ -96,6 +98,12 @@ pub(super) const SLOT_NAMES: [&str; NUM_SLOTS] = ["elements", "offsets", "validi #[derive(Clone, Debug, Default)] pub struct ListData; +impl Display for ListData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub struct ListDataParts { pub elements: ArrayRef, pub offsets: ArrayRef, diff --git a/vortex-array/src/arrays/list/vtable/mod.rs b/vortex-array/src/arrays/list/vtable/mod.rs index 2e38d848c95..d9624f49560 100644 --- a/vortex-array/src/arrays/list/vtable/mod.rs +++ b/vortex-array/src/arrays/list/vtable/mod.rs @@ -89,7 +89,10 @@ impl VTable for List { PARENT_RULES.evaluate(array, parent, child_idx) } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( ListMetadata { elements_len: array.elements().len() as u64, diff --git a/vortex-array/src/arrays/listview/array.rs b/vortex-array/src/arrays/listview/array.rs index f36161e8550..72c376b2f44 100644 --- a/vortex-array/src/arrays/listview/array.rs +++ b/vortex-array/src/arrays/listview/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use num_traits::AsPrimitive; @@ -120,6 +122,12 @@ pub struct ListViewData { is_zero_copy_to_list: bool, } +impl Display for ListViewData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "is_zero_copy_to_list: {}", self.is_zero_copy_to_list) + } +} + pub struct ListViewDataParts { pub elements_dtype: Arc, diff --git a/vortex-array/src/arrays/listview/vtable/mod.rs b/vortex-array/src/arrays/listview/vtable/mod.rs index b64c56451a3..6338c6504c1 100644 --- a/vortex-array/src/arrays/listview/vtable/mod.rs +++ b/vortex-array/src/arrays/listview/vtable/mod.rs @@ -90,7 +90,10 @@ impl VTable for ListView { vortex_panic!("ListViewArray buffer_name index {idx} out of bounds") } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( ListViewMetadata { elements_len: array.elements().len() as u64, diff --git a/vortex-array/src/arrays/masked/array.rs b/vortex-array/src/arrays/masked/array.rs index 1e90f83b344..4f6d53e5b35 100644 --- a/vortex-array/src/arrays/masked/array.rs +++ b/vortex-array/src/arrays/masked/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_bail; @@ -24,6 +27,12 @@ pub(super) const SLOT_NAMES: [&str; NUM_SLOTS] = ["child", "validity"]; #[derive(Clone, Debug)] pub struct MaskedData; +impl Display for MaskedData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub trait MaskedArrayExt: TypedArrayRef { fn child(&self) -> &ArrayRef { self.as_ref().slots()[CHILD_SLOT] diff --git a/vortex-array/src/arrays/masked/vtable/mod.rs b/vortex-array/src/arrays/masked/vtable/mod.rs index f4924e28ea7..cc5ef29a758 100644 --- a/vortex-array/src/arrays/masked/vtable/mod.rs +++ b/vortex-array/src/arrays/masked/vtable/mod.rs @@ -106,7 +106,10 @@ impl VTable for Masked { None } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -238,7 +241,7 @@ mod tests { let serialized = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); // Concat into a single buffer. diff --git a/vortex-array/src/arrays/null/mod.rs b/vortex-array/src/arrays/null/mod.rs index ed00c7a4a93..b2bdcc3a840 100644 --- a/vortex-array/src/arrays/null/mod.rs +++ b/vortex-array/src/arrays/null/mod.rs @@ -1,23 +1,19 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors -use std::hash::Hasher; - use vortex_error::VortexResult; use vortex_error::vortex_ensure; use vortex_error::vortex_panic; use vortex_session::VortexSession; -use crate::ArrayEq; -use crate::ArrayHash; use crate::ArrayRef; use crate::ExecutionCtx; use crate::ExecutionResult; -use crate::Precision; use crate::array::Array; use crate::array::ArrayId; use crate::array::ArrayParts; use crate::array::ArrayView; +use crate::array::EmptyArrayData; use crate::array::OperationsVTable; use crate::array::VTable; use crate::array::ValidityVTable; @@ -33,21 +29,8 @@ pub(crate) mod compute; /// A [`Null`]-encoded Vortex array. pub type NullArray = Array; -impl ArrayHash for NullData { - fn array_hash(&self, _state: &mut H, _precision: Precision) { - // len and dtype are hashed by ArrayInner; NullData has no additional fields. - } -} - -impl ArrayEq for NullData { - fn array_eq(&self, _other: &Self, _precision: Precision) -> bool { - // len, dtype, and slots are compared by ArrayInner; NullData has no additional fields. - true - } -} - impl VTable for Null { - type ArrayData = NullData; + type ArrayData = EmptyArrayData; type OperationsVTable = Self; type ValidityVTable = Self; @@ -58,7 +41,7 @@ impl VTable for Null { fn validate( &self, - _data: &NullData, + _data: &EmptyArrayData, dtype: &DType, _len: usize, _slots: &[Option], @@ -83,7 +66,10 @@ impl VTable for Null { vortex_panic!("NullArray slot_name index {idx} out of bounds") } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -106,7 +92,7 @@ impl VTable for Null { self.clone(), dtype.clone(), len, - NullData::new(), + EmptyArrayData, )) } @@ -150,9 +136,6 @@ impl VTable for Null { /// # Ok(()) /// # } /// ``` -#[derive(Clone, Debug)] -pub struct NullData; - #[derive(Clone, Debug)] pub struct Null; @@ -163,22 +146,11 @@ impl Null { impl Array { pub fn new(len: usize) -> Self { unsafe { - Array::from_parts_unchecked(ArrayParts::new(Null, DType::Null, len, NullData::new())) + Array::from_parts_unchecked(ArrayParts::new(Null, DType::Null, len, EmptyArrayData)) } } } -impl Default for NullData { - fn default() -> Self { - Self::new() - } -} - -impl NullData { - pub fn new() -> Self { - Self - } -} impl OperationsVTable for Null { fn scalar_at( _array: ArrayView<'_, Null>, diff --git a/vortex-array/src/arrays/patched/array.rs b/vortex-array/src/arrays/patched/array.rs index 7a917a0daf3..339f3de666e 100644 --- a/vortex-array/src/arrays/patched/array.rs +++ b/vortex-array/src/arrays/patched/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::ops::Range; use vortex_buffer::Buffer; @@ -58,6 +60,12 @@ pub struct PatchedData { pub(super) offset: usize, } +impl Display for PatchedData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "n_lanes: {}, offset: {}", self.n_lanes, self.offset) + } +} + impl PatchedData { pub(crate) fn validate( &self, diff --git a/vortex-array/src/arrays/patched/vtable/mod.rs b/vortex-array/src/arrays/patched/vtable/mod.rs index f40d3bac409..4c323e7a77b 100644 --- a/vortex-array/src/arrays/patched/vtable/mod.rs +++ b/vortex-array/src/arrays/patched/vtable/mod.rs @@ -130,7 +130,10 @@ impl VTable for Patched { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( PatchedMetadata { n_patches: u32::try_from(array.patch_indices().len())?, @@ -582,7 +585,9 @@ mod tests { let len = array.len(); let ctx = ArrayContext::empty(); - let serialized = array.serialize(&ctx, &SerializeOptions::default()).unwrap(); + let serialized = array + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) + .unwrap(); // Concat into a single buffer. let mut concat = ByteBufferMut::empty(); diff --git a/vortex-array/src/arrays/primitive/array/mod.rs b/vortex-array/src/arrays/primitive/array/mod.rs index 270e3b17ab5..e64cc891d4e 100644 --- a/vortex-array/src/arrays/primitive/array/mod.rs +++ b/vortex-array/src/arrays/primitive/array/mod.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::iter; use vortex_buffer::Alignment; @@ -86,6 +88,12 @@ pub struct PrimitiveData { pub(super) buffer: BufferHandle, } +impl Display for PrimitiveData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "ptype: {}", self.ptype) + } +} + pub struct PrimitiveDataParts { pub ptype: PType, pub buffer: BufferHandle, diff --git a/vortex-array/src/arrays/primitive/vtable/mod.rs b/vortex-array/src/arrays/primitive/vtable/mod.rs index 15532f38383..806c95b6a8f 100644 --- a/vortex-array/src/arrays/primitive/vtable/mod.rs +++ b/vortex-array/src/arrays/primitive/vtable/mod.rs @@ -78,7 +78,10 @@ impl VTable for Primitive { } } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -232,7 +235,7 @@ mod tests { let serialized = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); diff --git a/vortex-array/src/arrays/scalar_fn/array.rs b/vortex-array/src/arrays/scalar_fn/array.rs index 4326ca3c11d..301713761b5 100644 --- a/vortex-array/src/arrays/scalar_fn/array.rs +++ b/vortex-array/src/arrays/scalar_fn/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_ensure; @@ -19,6 +22,12 @@ pub struct ScalarFnData { pub(super) scalar_fn: ScalarFnRef, } +impl Display for ScalarFnData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "scalar_fn: {}", self.scalar_fn) + } +} + impl ScalarFnData { /// Create a new ScalarFnArray from a scalar function and its children. pub fn build( diff --git a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs index 40dfd22003e..996fbee1046 100644 --- a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs +++ b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs @@ -115,7 +115,10 @@ impl VTable for ScalarFnVTable { None } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { // Not supported Ok(None) } diff --git a/vortex-array/src/arrays/shared/array.rs b/vortex-array/src/arrays/shared/array.rs index 3a212cf74df..37d704db4d1 100644 --- a/vortex-array/src/arrays/shared/array.rs +++ b/vortex-array/src/arrays/shared/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::future::Future; use std::sync::Arc; use std::sync::OnceLock; @@ -33,6 +35,12 @@ pub struct SharedData { async_compute_lock: Arc>, } +impl Display for SharedData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + #[allow(async_fn_in_trait)] pub trait SharedArrayExt: TypedArrayRef { fn source(&self) -> &ArrayRef { diff --git a/vortex-array/src/arrays/shared/vtable.rs b/vortex-array/src/arrays/shared/vtable.rs index d6e1baf485b..6be759c83eb 100644 --- a/vortex-array/src/arrays/shared/vtable.rs +++ b/vortex-array/src/arrays/shared/vtable.rs @@ -91,7 +91,10 @@ impl VTable for Shared { SLOT_NAMES[idx].to_string() } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { vortex_error::vortex_bail!("Shared array is not serializable") } diff --git a/vortex-array/src/arrays/slice/array.rs b/vortex-array/src/arrays/slice/array.rs index eac2cffd2ca..b1121e2604a 100644 --- a/vortex-array/src/arrays/slice/array.rs +++ b/vortex-array/src/arrays/slice/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::ops::Range; use vortex_error::VortexExpect; @@ -23,6 +25,12 @@ pub struct SliceData { pub(super) range: Range, } +impl Display for SliceData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "range: {}..{}", self.range.start, self.range.end) + } +} + pub struct SliceDataParts { pub range: Range, } diff --git a/vortex-array/src/arrays/slice/vtable.rs b/vortex-array/src/arrays/slice/vtable.rs index 0d29d519806..2ac41a358b9 100644 --- a/vortex-array/src/arrays/slice/vtable.rs +++ b/vortex-array/src/arrays/slice/vtable.rs @@ -122,7 +122,10 @@ impl VTable for Slice { SLOT_NAMES[idx].to_string() } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { // TODO(joe): make this configurable vortex_bail!("Slice array is not serializable") } diff --git a/vortex-array/src/arrays/struct_/array.rs b/vortex-array/src/arrays/struct_/array.rs index ba1e46cead9..3d147f9c85e 100644 --- a/vortex-array/src/arrays/struct_/array.rs +++ b/vortex-array/src/arrays/struct_/array.rs @@ -1,7 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors -use std::fmt::Debug; use std::iter::once; use std::sync::Arc; @@ -13,6 +12,7 @@ use crate::ArrayRef; use crate::IntoArray; use crate::array::Array; use crate::array::ArrayParts; +use crate::array::EmptyArrayData; use crate::array::TypedArrayRef; use crate::array::child_to_validity; use crate::array::validity_to_child; @@ -149,9 +149,6 @@ pub(super) const FIELDS_OFFSET: usize = 1; /// let id_field = struct_array.unmasked_field_by_name("id").unwrap(); /// assert_eq!(id_field.len(), 3); /// ``` -#[derive(Clone, Debug, Default)] -pub struct StructData; - pub struct StructDataParts { pub struct_fields: StructFields, pub fields: Arc<[ArrayRef]>, @@ -251,7 +248,7 @@ impl Array { Struct, DType::Struct(dtype, validity.nullability()), length, - StructData, + EmptyArrayData, ) .with_slots(slots), ) @@ -273,7 +270,7 @@ impl Array { let slots = make_struct_slots(&fields, &validity, length); unsafe { Array::from_parts_unchecked( - ArrayParts::new(Struct, outer_dtype, length, StructData).with_slots(slots), + ArrayParts::new(Struct, outer_dtype, length, EmptyArrayData).with_slots(slots), ) } } @@ -289,7 +286,7 @@ impl Array { let outer_dtype = DType::Struct(dtype, validity.nullability()); let slots = make_struct_slots(&fields, &validity, length); Array::try_from_parts( - ArrayParts::new(Struct, outer_dtype, length, StructData).with_slots(slots), + ArrayParts::new(Struct, outer_dtype, length, EmptyArrayData).with_slots(slots), ) } @@ -378,7 +375,7 @@ impl Array { let slots = make_struct_slots(&[], &Validity::NonNullable, len); unsafe { Array::from_parts_unchecked( - ArrayParts::new(Struct, dtype, len, StructData).with_slots(slots), + ArrayParts::new(Struct, dtype, len, EmptyArrayData).with_slots(slots), ) } } @@ -424,7 +421,7 @@ impl Array { Struct, DType::Struct(new_dtype, self.dtype().nullability()), len, - StructData, + EmptyArrayData, ) .with_slots(new_slots), ) diff --git a/vortex-array/src/arrays/struct_/mod.rs b/vortex-array/src/arrays/struct_/mod.rs index 3ad34f225a1..5fccb58f9cd 100644 --- a/vortex-array/src/arrays/struct_/mod.rs +++ b/vortex-array/src/arrays/struct_/mod.rs @@ -3,7 +3,6 @@ mod array; pub use array::StructArrayExt; -pub use array::StructData; pub use array::StructDataParts; pub use vtable::StructArray; pub(crate) mod compute; diff --git a/vortex-array/src/arrays/struct_/vtable/mod.rs b/vortex-array/src/arrays/struct_/vtable/mod.rs index 1ad8bad2097..f33cea360c3 100644 --- a/vortex-array/src/arrays/struct_/vtable/mod.rs +++ b/vortex-array/src/arrays/struct_/vtable/mod.rs @@ -1,8 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors -use std::hash::Hasher; - use itertools::Itertools; use kernel::PARENT_KERNELS; use vortex_error::VortexExpect; @@ -11,16 +9,14 @@ use vortex_error::vortex_bail; use vortex_error::vortex_panic; use vortex_session::VortexSession; -use crate::ArrayEq; -use crate::ArrayHash; use crate::ArrayRef; use crate::ExecutionCtx; use crate::ExecutionResult; use crate::array::Array; use crate::array::ArrayView; +use crate::array::EmptyArrayData; use crate::array::VTable; use crate::array::child_to_validity; -use crate::arrays::struct_::StructData; use crate::arrays::struct_::array::FIELDS_OFFSET; use crate::arrays::struct_::array::VALIDITY_SLOT; use crate::arrays::struct_::array::make_struct_slots; @@ -33,24 +29,13 @@ mod kernel; mod operations; mod validity; -use crate::Precision; use crate::array::ArrayId; /// A [`Struct`]-encoded Vortex array. pub type StructArray = Array; -impl ArrayHash for StructData { - fn array_hash(&self, _state: &mut H, _precision: Precision) {} -} - -impl ArrayEq for StructData { - fn array_eq(&self, _other: &Self, _precision: Precision) -> bool { - true - } -} - impl VTable for Struct { - type ArrayData = StructData; + type ArrayData = EmptyArrayData; type OperationsVTable = Self; type ValidityVTable = Self; @@ -65,7 +50,7 @@ impl VTable for Struct { fn validate( &self, - _data: &StructData, + _data: &EmptyArrayData, dtype: &DType, len: usize, slots: &[Option], @@ -131,7 +116,10 @@ impl VTable for Struct { vortex_panic!("StructArray buffer_name index {idx} out of bounds") } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -180,7 +168,7 @@ impl VTable for Struct { let slots = make_struct_slots(&field_children, &validity, len); Ok( - crate::array::ArrayParts::new(self.clone(), dtype.clone(), len, StructData) + crate::array::ArrayParts::new(self.clone(), dtype.clone(), len, EmptyArrayData) .with_slots(slots), ) } diff --git a/vortex-array/src/arrays/varbin/array.rs b/vortex-array/src/arrays/varbin/array.rs index 59be921213b..7fbbcb27b2c 100644 --- a/vortex-array/src/arrays/varbin/array.rs +++ b/vortex-array/src/arrays/varbin/array.rs @@ -1,6 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; + use num_traits::AsPrimitive; use vortex_buffer::ByteBuffer; use vortex_error::VortexExpect; @@ -37,6 +40,12 @@ pub struct VarBinData { pub(super) bytes: BufferHandle, } +impl Display for VarBinData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub struct VarBinDataParts { pub dtype: DType, pub bytes: BufferHandle, diff --git a/vortex-array/src/arrays/varbin/vtable/mod.rs b/vortex-array/src/arrays/varbin/vtable/mod.rs index 8acb428b0bc..ffe44158c27 100644 --- a/vortex-array/src/arrays/varbin/vtable/mod.rs +++ b/vortex-array/src/arrays/varbin/vtable/mod.rs @@ -119,7 +119,10 @@ impl VTable for VarBin { } } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( VarBinMetadata { offsets_ptype: PType::try_from(array.offsets().dtype()) diff --git a/vortex-array/src/arrays/varbinview/array.rs b/vortex-array/src/arrays/varbinview/array.rs index 21c63346d10..37d055107cf 100644 --- a/vortex-array/src/arrays/varbinview/array.rs +++ b/vortex-array/src/arrays/varbinview/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::mem::size_of; use std::sync::Arc; @@ -100,6 +102,12 @@ pub struct VarBinViewData { pub(super) views: BufferHandle, } +impl Display for VarBinViewData { + fn fmt(&self, _f: &mut Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} + pub struct VarBinViewDataParts { pub dtype: DType, pub buffers: Arc<[BufferHandle]>, diff --git a/vortex-array/src/arrays/varbinview/vtable/mod.rs b/vortex-array/src/arrays/varbinview/vtable/mod.rs index a867eeb5e62..453cd7b61d4 100644 --- a/vortex-array/src/arrays/varbinview/vtable/mod.rs +++ b/vortex-array/src/arrays/varbinview/vtable/mod.rs @@ -128,7 +128,10 @@ impl VTable for VarBinView { } } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -259,7 +262,7 @@ mod tests { let serialized = array .clone() .into_array() - .serialize(&ctx, &SerializeOptions::default()) + .serialize(&ctx, &LEGACY_SESSION, &SerializeOptions::default()) .unwrap(); let mut concat = ByteBufferMut::empty(); diff --git a/vortex-array/src/arrays/variant/mod.rs b/vortex-array/src/arrays/variant/mod.rs index e50aafd869f..06b8a8437a8 100644 --- a/vortex-array/src/arrays/variant/mod.rs +++ b/vortex-array/src/arrays/variant/mod.rs @@ -10,23 +10,13 @@ pub use self::vtable::VariantArray; use crate::ArrayRef; use crate::array::Array; use crate::array::ArrayParts; +use crate::array::EmptyArrayData; use crate::array::TypedArrayRef; use crate::dtype::DType; pub(super) const NUM_SLOTS: usize = 1; pub(super) const SLOT_NAMES: [&str; NUM_SLOTS] = ["child"]; -/// The canonical in-memory representation of variant (semi-structured) data. -/// -/// Wraps a single child array that contains the actual variant-encoded data -/// (e.g. a `ParquetVariantArray` or any other variant encoding). -/// -/// Nullability is delegated to the child array: `VariantArray`'s dtype is -/// always `DType::Variant(child.dtype().nullability())`. The child's validity -/// determines which rows are null. -#[derive(Clone, Debug)] -pub struct VariantData; - pub trait VariantArrayExt: TypedArrayRef { fn child(&self) -> &ArrayRef { self.as_ref().slots()[0] @@ -44,7 +34,7 @@ impl Array { let stats = child.statistics().to_owned(); unsafe { Array::from_parts_unchecked( - ArrayParts::new(Variant, dtype, len, VariantData).with_slots(vec![Some(child)]), + ArrayParts::new(Variant, dtype, len, EmptyArrayData).with_slots(vec![Some(child)]), ) } .with_stats_set(stats) diff --git a/vortex-array/src/arrays/variant/vtable/mod.rs b/vortex-array/src/arrays/variant/vtable/mod.rs index bd00afd027e..2fdf200b98f 100644 --- a/vortex-array/src/arrays/variant/vtable/mod.rs +++ b/vortex-array/src/arrays/variant/vtable/mod.rs @@ -4,25 +4,21 @@ mod operations; mod validity; -use std::hash::Hasher; - use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_ensure; use vortex_error::vortex_panic; +use vortex_session::VortexSession; -use crate::ArrayEq; -use crate::ArrayHash; use crate::ArrayRef; use crate::ExecutionCtx; use crate::ExecutionResult; -use crate::Precision; use crate::array::Array; use crate::array::ArrayId; use crate::array::ArrayView; +use crate::array::EmptyArrayData; use crate::array::VTable; use crate::arrays::variant::SLOT_NAMES; -use crate::arrays::variant::VariantData; use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; @@ -37,18 +33,8 @@ impl Variant { pub const ID: ArrayId = ArrayId::new_ref("vortex.variant"); } -impl ArrayHash for VariantData { - fn array_hash(&self, _state: &mut H, _precision: Precision) {} -} - -impl ArrayEq for VariantData { - fn array_eq(&self, _other: &Self, _precision: Precision) -> bool { - true - } -} - impl VTable for Variant { - type ArrayData = VariantData; + type ArrayData = EmptyArrayData; type OperationsVTable = Self; @@ -103,7 +89,10 @@ impl VTable for Variant { None } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some(vec![])) } @@ -115,7 +104,7 @@ impl VTable for Variant { _buffers: &[BufferHandle], children: &dyn ArrayChildren, - _session: &vortex_session::VortexSession, + _session: &VortexSession, ) -> VortexResult> { vortex_ensure!( metadata.is_empty(), @@ -131,7 +120,7 @@ impl VTable for Variant { // The child carries the nullability for the whole VariantArray. let child = children.get(0, dtype, len)?; Ok( - crate::array::ArrayParts::new(self.clone(), dtype.clone(), len, VariantData) + crate::array::ArrayParts::new(self.clone(), dtype.clone(), len, EmptyArrayData) .with_slots(vec![Some(child)]), ) } diff --git a/vortex-array/src/arrow/executor/run_end.rs b/vortex-array/src/arrow/executor/run_end.rs index ca434c2308d..69aca62a994 100644 --- a/vortex-array/src/arrow/executor/run_end.rs +++ b/vortex-array/src/arrow/executor/run_end.rs @@ -80,7 +80,7 @@ fn run_end_to_arrow( ) -> VortexResult { let length = array.len(); let metadata_bytes = array - .metadata()? + .metadata(ctx.session())? .ok_or_else(|| vortex_err!("RunEndArray missing metadata"))?; let metadata = RunEndMetadata::decode(&*metadata_bytes) .map_err(|e| vortex_err!("Failed to decode RunEndMetadata: {e}"))?; diff --git a/vortex-array/src/display/mod.rs b/vortex-array/src/display/mod.rs index 88da4f64fc3..f299bb7aeeb 100644 --- a/vortex-array/src/display/mod.rs +++ b/vortex-array/src/display/mod.rs @@ -66,7 +66,7 @@ pub enum DisplayOptions { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) nbytes=10 B (100.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// buffer: values host 10 B (align=2) (100.00%) /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: true, metadata: true, stats: true })), expected); @@ -77,12 +77,12 @@ pub enum DisplayOptions { /// ("y", buffer![3, 4].into_array()), /// ]).unwrap().into_array(); /// let expected = "root: vortex.struct({x=i32, y=i32}, len=2) nbytes=16 B (100.00%) - /// metadata: EmptyMetadata + /// metadata:\x20 /// x: vortex.primitive(i32, len=2) nbytes=8 B (50.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// buffer: values host 8 B (align=4) (100.00%) /// y: vortex.primitive(i32, len=2) nbytes=8 B (50.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// buffer: values host 8 B (align=4) (100.00%) /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: true, metadata: true, stats: true })), expected); @@ -96,7 +96,7 @@ pub enum DisplayOptions { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) nbytes=10 B (100.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: false, metadata: true, stats: true })), expected); /// @@ -106,11 +106,11 @@ pub enum DisplayOptions { /// ("y", buffer![3, 4].into_array()), /// ]).unwrap().into_array(); /// let expected = "root: vortex.struct({x=i32, y=i32}, len=2) nbytes=16 B (100.00%) - /// metadata: EmptyMetadata + /// metadata:\x20 /// x: vortex.primitive(i32, len=2) nbytes=8 B (50.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// y: vortex.primitive(i32, len=2) nbytes=8 B (50.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: false, metadata: true, stats: true })), expected); /// ``` @@ -123,7 +123,7 @@ pub enum DisplayOptions { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// buffer: values host 10 B (align=2) /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: true, metadata: true, stats: false })), expected); @@ -134,12 +134,12 @@ pub enum DisplayOptions { /// ("y", buffer![3, 4].into_array()), /// ]).unwrap().into_array(); /// let expected = "root: vortex.struct({x=i32, y=i32}, len=2) - /// metadata: EmptyMetadata + /// metadata:\x20 /// x: vortex.primitive(i32, len=2) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// buffer: values host 8 B (align=4) /// y: vortex.primitive(i32, len=2) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// buffer: values host 8 B (align=4) /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: true, metadata: true, stats: false })), expected); @@ -205,7 +205,7 @@ pub enum DisplayOptions { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: false, metadata: true, stats: false })), expected); /// @@ -215,11 +215,11 @@ pub enum DisplayOptions { /// ("y", buffer![3, 4].into_array()), /// ]).unwrap().into_array(); /// let expected = "root: vortex.struct({x=i32, y=i32}, len=2) - /// metadata: EmptyMetadata + /// metadata:\x20 /// x: vortex.primitive(i32, len=2) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// y: vortex.primitive(i32, len=2) - /// metadata: EmptyMetadata + /// metadata: ptype: i32 /// "; /// assert_eq!(format!("{}", array.display_as(DisplayOptions::TreeDisplay { buffers: false, metadata: true, stats: false })), expected); /// ``` @@ -418,7 +418,7 @@ impl ArrayRef { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) nbytes=10 B (100.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// buffer: values host 10 B (align=2) (100.00%) /// "; /// assert_eq!(format!("{}", array.display_tree()), expected); @@ -438,7 +438,7 @@ impl ArrayRef { /// # use vortex_buffer::buffer; /// let array = buffer![0_i16, 1, 2, 3, 4].into_array(); /// let expected = "root: vortex.primitive(i16, len=5) nbytes=10 B (100.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i16 /// buffer: values host 10 B (align=2) (100.00%) /// "; /// assert_eq!(array.tree_display().to_string(), expected); @@ -480,7 +480,7 @@ impl ArrayRef { /// .with(MetadataExtractor) /// .with(BufferExtractor { show_percent: false }) /// .to_string(); - /// let expected = "root: vortex.primitive(i16, len=5)\n metadata: EmptyMetadata\n buffer: values host 10 B (align=2)\n"; + /// let expected = "root: vortex.primitive(i16, len=5)\n metadata: ptype: i16\n buffer: values host 10 B (align=2)\n"; /// assert_eq!(detailed, expected); /// ``` pub fn tree_display_builder(&self) -> TreeDisplay { @@ -722,7 +722,7 @@ mod test { fn test_display_tree_nullable_primitive_validity_child() { let array = PrimitiveArray::from_option_iter([Some(1i64), Some(2), None, Some(3)]).into_array(); - let expected = "root: vortex.primitive(i64?, len=4) nbytes=33 B (100.00%)\n metadata: EmptyMetadata\n buffer: values host 32 B (align=8) (96.97%)\n validity: vortex.bool(bool, len=4) nbytes=1 B (3.03%)\n metadata: BoolMetadata { offset: 0 }\n buffer: bits host 1 B (align=1) (100.00%)\n"; + let expected = "root: vortex.primitive(i64?, len=4) nbytes=33 B (100.00%)\n metadata: ptype: i64\n buffer: values host 32 B (align=8) (96.97%)\n validity: vortex.bool(bool, len=4) nbytes=1 B (3.03%)\n metadata: offset: 0\n buffer: bits host 1 B (align=1) (100.00%)\n"; assert_eq!(format!("{}", array.display_tree()), expected); } diff --git a/vortex-array/src/scalar_fn/fns/zip/mod.rs b/vortex-array/src/scalar_fn/fns/zip/mod.rs index e166148965a..5de3524be9a 100644 --- a/vortex-array/src/scalar_fn/fns/zip/mod.rs +++ b/vortex-array/src/scalar_fn/fns/zip/mod.rs @@ -383,7 +383,7 @@ mod tests { insta::assert_snapshot!(result.display_tree(), @r" root: vortex.varbinview(utf8?, len=100) nbytes=1.66 kB (100.00%) [all_valid] - metadata: EmptyMetadata + metadata: buffer: buffer_0 host 29 B (align=1) (1.75%) buffer: buffer_1 host 28 B (align=1) (1.69%) buffer: views host 1.60 kB (align=16) (96.56%) diff --git a/vortex-array/src/serde.rs b/vortex-array/src/serde.rs index 1dda5d01a48..3299a8ad6e6 100644 --- a/vortex-array/src/serde.rs +++ b/vortex-array/src/serde.rs @@ -59,6 +59,7 @@ impl ArrayRef { pub fn serialize( &self, ctx: &ArrayContext, + session: &VortexSession, options: &SerializeOptions, ) -> VortexResult> { // Collect all array buffers @@ -117,7 +118,7 @@ impl ArrayRef { // Set up the flatbuffer builder let mut fbb = FlatBufferBuilder::new(); - let root = ArrayNodeFlatBuffer::try_new(ctx, self)?; + let root = ArrayNodeFlatBuffer::try_new(ctx, session, self)?; let fb_root = root.try_write_flatbuffer(&mut fbb)?; let fb_buffers = fbb.create_vector(&fb_buffers); @@ -157,15 +158,21 @@ impl ArrayRef { /// A utility struct for creating an [`fba::ArrayNode`] flatbuffer. pub struct ArrayNodeFlatBuffer<'a> { ctx: &'a ArrayContext, + session: &'a VortexSession, array: &'a ArrayRef, buffer_idx: u16, } impl<'a> ArrayNodeFlatBuffer<'a> { - pub fn try_new(ctx: &'a ArrayContext, array: &'a ArrayRef) -> VortexResult { + pub fn try_new( + ctx: &'a ArrayContext, + session: &'a VortexSession, + array: &'a ArrayRef, + ) -> VortexResult { // Depth-first traversal of the array to ensure it supports serialization. + // FIXME(ngates): this serializes the metadata and throws it away! for child in array.depth_first_traversal() { - if child.metadata()?.is_none() { + if child.metadata(session)?.is_none() { vortex_bail!( "Array {} does not support serialization", child.encoding_id() @@ -181,6 +188,7 @@ impl<'a> ArrayNodeFlatBuffer<'a> { }; Ok(Self { ctx, + session, array, buffer_idx: 0, }) @@ -201,7 +209,7 @@ impl<'a> ArrayNodeFlatBuffer<'a> { ) })?; - let metadata = self.array.metadata()?.ok_or_else(|| { + let metadata = self.array.metadata(self.session)?.ok_or_else(|| { vortex_err!( "Array {} does not support serialization", self.array.encoding_id() @@ -222,6 +230,7 @@ impl<'a> ArrayNodeFlatBuffer<'a> { // Update the number of buffers required. let msg = ArrayNodeFlatBuffer { ctx: self.ctx, + session: self.session, array: child, buffer_idx: child_buffer_idx, } diff --git a/vortex-array/src/session/mod.rs b/vortex-array/src/session/mod.rs index d5ba2d4f83b..62ed46cb34c 100644 --- a/vortex-array/src/session/mod.rs +++ b/vortex-array/src/session/mod.rs @@ -3,10 +3,12 @@ use std::sync::Arc; +use vortex_error::VortexResult; use vortex_session::Ref; use vortex_session::SessionExt; use vortex_session::registry::Registry; +use crate::ArrayRef; use crate::array::ArrayPlugin; use crate::array::ArrayPluginRef; use crate::arrays::Bool; @@ -86,6 +88,14 @@ pub trait ArraySessionExt: SessionExt { fn arrays(&self) -> Ref<'_, ArraySession> { self.get::() } + + /// Serialize an array using a plugin from the registry. + fn array_serialize(&self, array: &ArrayRef) -> VortexResult>> { + let Some(plugin) = self.arrays().registry.find(&array.encoding_id()) else { + return Ok(None); + }; + plugin.serialize(array, &self.session()) + } } impl ArraySessionExt for S {} diff --git a/vortex-btrblocks/src/schemes/string.rs b/vortex-btrblocks/src/schemes/string.rs index bb91609c47e..7aec016534e 100644 --- a/vortex-btrblocks/src/schemes/string.rs +++ b/vortex-btrblocks/src/schemes/string.rs @@ -254,7 +254,10 @@ impl Scheme for ZstdBuffersScheme { data: &mut ArrayAndStats, _ctx: CompressorContext, ) -> VortexResult { - Ok(vortex_zstd::ZstdBuffers::compress(data.array(), 3)?.into_array()) + Ok( + vortex_zstd::ZstdBuffers::compress(data.array(), 3, &vortex_array::LEGACY_SESSION)? + .into_array(), + ) } } diff --git a/vortex-cuda/src/hybrid_dispatch/mod.rs b/vortex-cuda/src/hybrid_dispatch/mod.rs index 0f7f45eeeb2..0845a46fdc3 100644 --- a/vortex-cuda/src/hybrid_dispatch/mod.rs +++ b/vortex-cuda/src/hybrid_dispatch/mod.rs @@ -257,7 +257,8 @@ mod tests { 0u32.into(), ) .vortex_expect("for"); - let vals = ZstdBuffers::compress(&vals.into_array(), 3).vortex_expect("zstd"); + let vals = ZstdBuffers::compress(&vals.into_array(), 3, &VortexSession::empty()) + .vortex_expect("zstd"); // codes = FoR(BitPacked) let codes = PrimitiveArray::new( diff --git a/vortex-cuda/src/kernel/encodings/zstd_buffers.rs b/vortex-cuda/src/kernel/encodings/zstd_buffers.rs index a95b9261750..c93cf8aaec9 100644 --- a/vortex-cuda/src/kernel/encodings/zstd_buffers.rs +++ b/vortex-cuda/src/kernel/encodings/zstd_buffers.rs @@ -237,7 +237,7 @@ mod tests { .vortex_expect("failed to create execution context"); let input = PrimitiveArray::from_iter(0i64..1024).into_array(); - let compressed = ZstdBuffers::compress(&input, 3)?; + let compressed = ZstdBuffers::compress(&input, 3, &VortexSession::empty())?; let cpu_result = compressed.clone().into_array().to_canonical()?; let gpu_result = ZstdBuffersExecutor @@ -264,7 +264,7 @@ mod tests { "baz", ]) .into_array(); - let compressed = ZstdBuffers::compress(&input, 3)?; + let compressed = ZstdBuffers::compress(&input, 3, &VortexSession::empty())?; let cpu_result = compressed.clone().into_array().to_canonical()?; let gpu_result = ZstdBuffersExecutor diff --git a/vortex-cuda/src/layout.rs b/vortex-cuda/src/layout.rs index 7af7ba9e3de..516968b8f82 100644 --- a/vortex-cuda/src/layout.rs +++ b/vortex-cuda/src/layout.rs @@ -445,7 +445,7 @@ impl LayoutStrategy for CudaFlatLayoutStrategy { segment_sink: SegmentSinkRef, mut stream: SendableSequentialStream, _eof: SequencePointer, - _handle: vortex::io::runtime::Handle, + session: &VortexSession, ) -> VortexResult { let ctx = ctx.clone(); let options = self.clone(); @@ -509,6 +509,7 @@ impl LayoutStrategy for CudaFlatLayoutStrategy { let buffers = chunk.serialize( &ctx, + session, &SerializeOptions { offset: 0, include_padding: options.include_padding, diff --git a/vortex-file/src/v2/file_stats_reader.rs b/vortex-file/src/v2/file_stats_reader.rs index bee460066b2..fb31b28d61f 100644 --- a/vortex-file/src/v2/file_stats_reader.rs +++ b/vortex-file/src/v2/file_stats_reader.rs @@ -219,6 +219,7 @@ mod tests { use vortex_error::VortexResult; use vortex_io::runtime::single::block_on; use vortex_io::session::RuntimeSession; + use vortex_io::session::RuntimeSessionExt; use vortex_layout::LayoutReader; use vortex_layout::LayoutStrategy; use vortex_layout::layouts::flat::writer::FlatLayoutStrategy; @@ -253,6 +254,7 @@ mod tests { #[test] fn pruning_when_filter_out_of_range() -> VortexResult<()> { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -269,7 +271,7 @@ mod tests { Arc::::clone(&segments), struct_array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await?; @@ -291,6 +293,7 @@ mod tests { #[test] fn no_pruning_when_filter_in_range() -> VortexResult<()> { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -307,7 +310,7 @@ mod tests { Arc::::clone(&segments), struct_array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await?; diff --git a/vortex-file/src/writer.rs b/vortex-file/src/writer.rs index 66b6226c6fa..9861d2c0c7f 100644 --- a/vortex-file/src/writer.rs +++ b/vortex-file/src/writer.rs @@ -179,7 +179,9 @@ impl VortexWriteOptions { // We spawn the layout future so it is driven in the background while we write the // buffer stream, so we don't need to poll it until all buffers have been drained. let ctx2 = ctx.clone(); - let layout_fut = self.session.handle().spawn_nested(|h| async move { + let session = self.session.clone(); + let layout_fut = self.session.handle().spawn_nested(move |h| async move { + let session = session.with_handle(h); let layout = self .strategy .write_stream( @@ -187,7 +189,7 @@ impl VortexWriteOptions { Arc::::clone(&segments), stream, eof, - h, + &session, ) .await?; Ok::<_, VortexError>((layout, segments.segment_specs())) diff --git a/vortex-ipc/public-api.lock b/vortex-ipc/public-api.lock index 2c79b3ef0cb..5eba6f17f38 100644 --- a/vortex-ipc/public-api.lock +++ b/vortex-ipc/public-api.lock @@ -32,15 +32,15 @@ pub fn vortex_ipc::iterator::SyncIPCReader::dtype(&self) -> &vortex_array::dt pub trait vortex_ipc::iterator::ArrayIteratorIPC -pub fn vortex_ipc::iterator::ArrayIteratorIPC::into_ipc(self) -> vortex_error::VortexResult where Self: core::marker::Sized +pub fn vortex_ipc::iterator::ArrayIteratorIPC::into_ipc(self, session: &vortex_session::VortexSession) -> vortex_error::VortexResult where Self: core::marker::Sized -pub fn vortex_ipc::iterator::ArrayIteratorIPC::write_ipc(self, write: W) -> vortex_error::VortexResult where Self: core::marker::Sized +pub fn vortex_ipc::iterator::ArrayIteratorIPC::write_ipc(self, write: W, session: &vortex_session::VortexSession) -> vortex_error::VortexResult where Self: core::marker::Sized impl vortex_ipc::iterator::ArrayIteratorIPC for I -pub fn I::into_ipc(self) -> vortex_error::VortexResult where Self: core::marker::Sized +pub fn I::into_ipc(self, session: &vortex_session::VortexSession) -> vortex_error::VortexResult where Self: core::marker::Sized -pub fn I::write_ipc(self, write: W) -> vortex_error::VortexResult where Self: core::marker::Sized +pub fn I::write_ipc(self, write: W, session: &vortex_session::VortexSession) -> vortex_error::VortexResult where Self: core::marker::Sized pub mod vortex_ipc::messages @@ -96,7 +96,7 @@ pub fn vortex_ipc::messages::AsyncMessageWriter::inner(&self) -> &W pub fn vortex_ipc::messages::AsyncMessageWriter::into_inner(self) -> W -pub fn vortex_ipc::messages::AsyncMessageWriter::new(write: W) -> Self +pub fn vortex_ipc::messages::AsyncMessageWriter::new(write: W, session: &vortex_session::VortexSession) -> Self pub async fn vortex_ipc::messages::AsyncMessageWriter::write_message(&mut self, message: vortex_ipc::messages::EncoderMessage<'_>) -> vortex_error::VortexResult<()> @@ -128,9 +128,7 @@ impl vortex_ipc::messages::MessageEncoder pub fn vortex_ipc::messages::MessageEncoder::encode(&mut self, message: vortex_ipc::messages::EncoderMessage<'_>) -> vortex_error::VortexResult> -impl core::default::Default for vortex_ipc::messages::MessageEncoder - -pub fn vortex_ipc::messages::MessageEncoder::default() -> Self +pub fn vortex_ipc::messages::MessageEncoder::new(session: vortex_session::VortexSession) -> Self pub struct vortex_ipc::messages::SyncMessageReader @@ -148,7 +146,7 @@ pub struct vortex_ipc::messages::SyncMessageWriter impl vortex_ipc::messages::SyncMessageWriter -pub fn vortex_ipc::messages::SyncMessageWriter::new(write: W) -> Self +pub fn vortex_ipc::messages::SyncMessageWriter::new(write: W, session: &vortex_session::VortexSession) -> Self pub fn vortex_ipc::messages::SyncMessageWriter::write_message(&mut self, message: vortex_ipc::messages::EncoderMessage<'_>) -> vortex_error::VortexResult<()> @@ -186,12 +184,12 @@ pub fn vortex_ipc::stream::AsyncIPCReader::dtype(&self) -> &vortex_array::dty pub trait vortex_ipc::stream::ArrayStreamIPC -pub fn vortex_ipc::stream::ArrayStreamIPC::into_ipc(self) -> vortex_ipc::stream::ArrayStreamIPCBytes where Self: core::marker::Sized +pub fn vortex_ipc::stream::ArrayStreamIPC::into_ipc(self, session: &vortex_session::VortexSession) -> vortex_ipc::stream::ArrayStreamIPCBytes where Self: core::marker::Sized -pub fn vortex_ipc::stream::ArrayStreamIPC::write_ipc(self, write: W) -> impl core::future::future::Future> where Self: core::marker::Sized +pub fn vortex_ipc::stream::ArrayStreamIPC::write_ipc(self, write: W, session: &vortex_session::VortexSession) -> impl core::future::future::Future> where Self: core::marker::Sized impl vortex_ipc::stream::ArrayStreamIPC for S -pub fn S::into_ipc(self) -> vortex_ipc::stream::ArrayStreamIPCBytes where Self: core::marker::Sized +pub fn S::into_ipc(self, session: &vortex_session::VortexSession) -> vortex_ipc::stream::ArrayStreamIPCBytes where Self: core::marker::Sized -pub async fn S::write_ipc(self, write: W) -> vortex_error::VortexResult where Self: core::marker::Sized +pub async fn S::write_ipc(self, write: W, session: &vortex_session::VortexSession) -> vortex_error::VortexResult where Self: core::marker::Sized diff --git a/vortex-ipc/src/iterator.rs b/vortex-ipc/src/iterator.rs index a6765d57ed8..318d062127c 100644 --- a/vortex-ipc/src/iterator.rs +++ b/vortex-ipc/src/iterator.rs @@ -85,21 +85,21 @@ impl Iterator for SyncIPCReader { /// A trait for converting an [`ArrayIterator`] into an IPC stream. pub trait ArrayIteratorIPC { - fn into_ipc(self) -> VortexResult + fn into_ipc(self, session: &VortexSession) -> VortexResult where Self: Sized; - fn write_ipc(self, write: W) -> VortexResult + fn write_ipc(self, write: W, session: &VortexSession) -> VortexResult where Self: Sized; } impl ArrayIteratorIPC for I { - fn into_ipc(self) -> VortexResult + fn into_ipc(self, session: &VortexSession) -> VortexResult where Self: Sized, { - let mut encoder = MessageEncoder::default(); + let mut encoder = MessageEncoder::new(session.clone()); let buffers = encoder.encode(EncoderMessage::DType(self.dtype()))?; Ok(ArrayIteratorIPCBytes { inner: Box::new(self), @@ -108,11 +108,11 @@ impl ArrayIteratorIPC for I { }) } - fn write_ipc(self, mut write: W) -> VortexResult + fn write_ipc(self, mut write: W, session: &VortexSession) -> VortexResult where Self: Sized, { - let mut stream = self.into_ipc()?; + let mut stream = self.into_ipc(session)?; for buffer in &mut stream { write.write_all(buffer?.as_ref())?; } @@ -183,7 +183,10 @@ mod test { #[test] fn test_sync_stream() -> VortexResult<()> { let array = buffer![1i32, 2, 3].into_array(); - let ipc_buffer = array.to_array_iterator().into_ipc()?.collect_to_buffer()?; + let ipc_buffer = array + .to_array_iterator() + .into_ipc(&SESSION)? + .collect_to_buffer()?; let reader = SyncIPCReader::try_new(Cursor::new(ipc_buffer), &SESSION)?; diff --git a/vortex-ipc/src/messages/decoder.rs b/vortex-ipc/src/messages/decoder.rs index d0108830aa3..d5f2cce336d 100644 --- a/vortex-ipc/src/messages/decoder.rs +++ b/vortex-ipc/src/messages/decoder.rs @@ -180,7 +180,7 @@ mod test { fn write_and_read(expected: &ArrayRef) { let mut ipc_bytes = BytesMut::new(); - let mut encoder = MessageEncoder::default(); + let mut encoder = MessageEncoder::new(SESSION.clone()); for buf in encoder.encode(EncoderMessage::Array(expected)).unwrap() { ipc_bytes.extend_from_slice(buf.as_ref()); } diff --git a/vortex-ipc/src/messages/encoder.rs b/vortex-ipc/src/messages/encoder.rs index 66a555ecb36..c4372b3cdd9 100644 --- a/vortex-ipc/src/messages/encoder.rs +++ b/vortex-ipc/src/messages/encoder.rs @@ -14,6 +14,7 @@ use vortex_error::vortex_err; use vortex_flatbuffers::FlatBuffer; use vortex_flatbuffers::WriteFlatBufferExt; use vortex_flatbuffers::message as fb; +use vortex_session::VortexSession; /// An IPC message ready to be passed to the encoder. pub enum EncoderMessage<'a> { @@ -25,17 +26,17 @@ pub enum EncoderMessage<'a> { pub struct MessageEncoder { /// A reusable buffer of zeros used for padding. zeros: Bytes, + session: VortexSession, } -impl Default for MessageEncoder { - fn default() -> Self { +impl MessageEncoder { + pub fn new(session: VortexSession) -> Self { Self { + session, zeros: BytesMut::zeroed(u16::MAX as usize).freeze(), } } -} -impl MessageEncoder { /// Encode an IPC message for writing to a byte stream. /// /// The returned buffers should be written contiguously to the stream. @@ -59,7 +60,8 @@ impl MessageEncoder { // sending deltas later. let ctx = ArrayContext::empty(); - let array_buffers = array.serialize(&ctx, &SerializeOptions::default())?; + let array_buffers = + array.serialize(&ctx, &self.session, &SerializeOptions::default())?; let body_len = array_buffers.iter().map(|b| b.len() as u64).sum::(); let array_encodings = ctx diff --git a/vortex-ipc/src/messages/writer_async.rs b/vortex-ipc/src/messages/writer_async.rs index ca3cf9b6f77..39b0434ee72 100644 --- a/vortex-ipc/src/messages/writer_async.rs +++ b/vortex-ipc/src/messages/writer_async.rs @@ -4,6 +4,7 @@ use futures::AsyncWrite; use futures::AsyncWriteExt; use vortex_error::VortexResult; +use vortex_session::VortexSession; use crate::messages::EncoderMessage; use crate::messages::MessageEncoder; @@ -14,10 +15,10 @@ pub struct AsyncMessageWriter { } impl AsyncMessageWriter { - pub fn new(write: W) -> Self { + pub fn new(write: W, session: &VortexSession) -> Self { Self { write, - encoder: MessageEncoder::default(), + encoder: MessageEncoder::new(session.clone()), } } diff --git a/vortex-ipc/src/messages/writer_sync.rs b/vortex-ipc/src/messages/writer_sync.rs index 0c3ae72565d..30309e08a1d 100644 --- a/vortex-ipc/src/messages/writer_sync.rs +++ b/vortex-ipc/src/messages/writer_sync.rs @@ -4,6 +4,7 @@ use std::io::Write; use vortex_error::VortexResult; +use vortex_session::VortexSession; use crate::messages::EncoderMessage; use crate::messages::MessageEncoder; @@ -14,10 +15,10 @@ pub struct SyncMessageWriter { } impl SyncMessageWriter { - pub fn new(write: W) -> Self { + pub fn new(write: W, session: &VortexSession) -> Self { Self { write, - encoder: MessageEncoder::default(), + encoder: MessageEncoder::new(session.clone()), } } diff --git a/vortex-ipc/src/stream.rs b/vortex-ipc/src/stream.rs index 69bea062cc4..8b6d9f69e3e 100644 --- a/vortex-ipc/src/stream.rs +++ b/vortex-ipc/src/stream.rs @@ -107,33 +107,41 @@ impl Stream for AsyncIPCReader { /// A trait for converting an [`ArrayStream`] into IPC streams. pub trait ArrayStreamIPC { - fn into_ipc(self) -> ArrayStreamIPCBytes + fn into_ipc(self, session: &VortexSession) -> ArrayStreamIPCBytes where Self: Sized; - fn write_ipc(self, write: W) -> impl Future> + fn write_ipc( + self, + write: W, + session: &VortexSession, + ) -> impl Future> where Self: Sized; } impl ArrayStreamIPC for S { - fn into_ipc(self) -> ArrayStreamIPCBytes + fn into_ipc(self, session: &VortexSession) -> ArrayStreamIPCBytes where Self: Sized, { ArrayStreamIPCBytes { stream: Box::pin(self), - encoder: MessageEncoder::default(), + encoder: MessageEncoder::new(session.clone()), buffers: vec![], written_dtype: false, } } - async fn write_ipc(self, mut write: W) -> VortexResult + async fn write_ipc( + self, + mut write: W, + session: &VortexSession, + ) -> VortexResult where Self: Sized, { - let mut stream = self.into_ipc(); + let mut stream = self.into_ipc(session); while let Some(chunk) = stream.next().await { write.write_all(&chunk?).await?; } @@ -230,7 +238,7 @@ mod test { let array = buffer![1, 2, 3].into_array(); let ipc_buffer = array .to_array_stream() - .into_ipc() + .into_ipc(&SESSION) .collect_to_buffer() .await .unwrap(); @@ -266,7 +274,7 @@ mod test { let array = buffer![1i32, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_array(); let ipc_buffer = array .to_array_stream() - .into_ipc() + .into_ipc(&SESSION) .collect_to_buffer() .await .unwrap(); @@ -289,7 +297,7 @@ mod test { let array = buffer![42i64, -1, 0, i64::MAX, i64::MIN].into_array(); let ipc_buffer = array .to_array_stream() - .into_ipc() + .into_ipc(&SESSION) .collect_to_buffer() .await .unwrap(); diff --git a/vortex-layout/public-api.lock b/vortex-layout/public-api.lock index cc11334cb0c..a2dbc7860c2 100644 --- a/vortex-layout/public-api.lock +++ b/vortex-layout/public-api.lock @@ -36,7 +36,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::buffered::Buffere pub fn vortex_layout::layouts::buffered::BufferedStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::buffered::BufferedStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::buffered::BufferedStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub mod vortex_layout::layouts::chunked @@ -58,7 +58,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::chunked::writer:: pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub struct vortex_layout::layouts::chunked::Chunked @@ -160,7 +160,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::collect::CollectS pub fn vortex_layout::layouts::collect::CollectStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::collect::CollectStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::collect::CollectStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub mod vortex_layout::layouts::compressed @@ -180,7 +180,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::compressed::Compr pub fn vortex_layout::layouts::compressed::CompressingStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::compressed::CompressingStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::compressed::CompressingStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub trait vortex_layout::layouts::compressed::CompressorPlugin: core::marker::Send + core::marker::Sync + 'static @@ -272,7 +272,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::dict::writer::Dic pub fn vortex_layout::layouts::dict::writer::DictStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::dict::writer::DictStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::dict::writer::DictStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub fn vortex_layout::layouts::dict::writer::dict_layout_supported(dtype: &vortex_array::dtype::DType) -> bool @@ -440,7 +440,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::flat::writer::Fla pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, _eof: vortex_layout::sequence::SequencePointer, _handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, _eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub struct vortex_layout::layouts::flat::Flat @@ -574,7 +574,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::repartition::Repa pub fn vortex_layout::layouts::repartition::RepartitionStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::repartition::RepartitionStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::repartition::RepartitionStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub struct vortex_layout::layouts::repartition::RepartitionWriterOptions @@ -754,7 +754,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::table::TableStrat pub fn vortex_layout::layouts::table::TableStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::table::TableStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::table::TableStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub mod vortex_layout::layouts::zoned @@ -784,7 +784,7 @@ impl vortex_layout::LayoutStrategy for vortex_layout::layouts::zoned::writer::Zo pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub mod vortex_layout::layouts::zoned::zone_map @@ -1868,67 +1868,67 @@ pub trait vortex_layout::LayoutStrategy: 'static + core::marker::Send + core::ma pub fn vortex_layout::LayoutStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::LayoutStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::LayoutStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for alloc::sync::Arc pub fn alloc::sync::Arc::buffered_bytes(&self) -> u64 -pub fn alloc::sync::Arc::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn alloc::sync::Arc::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::buffered::BufferedStrategy pub fn vortex_layout::layouts::buffered::BufferedStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::buffered::BufferedStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::buffered::BufferedStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::chunked::writer::ChunkedLayoutStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::collect::CollectStrategy pub fn vortex_layout::layouts::collect::CollectStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::collect::CollectStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::collect::CollectStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::compressed::CompressingStrategy pub fn vortex_layout::layouts::compressed::CompressingStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::compressed::CompressingStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::compressed::CompressingStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::dict::writer::DictStrategy pub fn vortex_layout::layouts::dict::writer::DictStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::dict::writer::DictStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::dict::writer::DictStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::flat::writer::FlatLayoutStrategy pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, _eof: vortex_layout::sequence::SequencePointer, _handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::flat::writer::FlatLayoutStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, _eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::repartition::RepartitionStrategy pub fn vortex_layout::layouts::repartition::RepartitionStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::repartition::RepartitionStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::repartition::RepartitionStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::table::TableStrategy pub fn vortex_layout::layouts::table::TableStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::table::TableStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::table::TableStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait impl vortex_layout::LayoutStrategy for vortex_layout::layouts::zoned::writer::ZonedStrategy pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::buffered_bytes(&self) -> u64 -pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::write_stream<'life0, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, handle: vortex_io::runtime::handle::Handle) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait +pub fn vortex_layout::layouts::zoned::writer::ZonedStrategy::write_stream<'life0, 'life1, 'async_trait>(&'life0 self, ctx: vortex_array::ArrayContext, segment_sink: vortex_layout::segments::SegmentSinkRef, stream: vortex_layout::sequence::SendableSequentialStream, eof: vortex_layout::sequence::SequencePointer, session: &'life1 vortex_session::VortexSession) -> core::pin::Pin> + core::marker::Send + 'async_trait)>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait pub trait vortex_layout::VTable: 'static + core::marker::Sized + core::marker::Send + core::marker::Sync + core::fmt::Debug diff --git a/vortex-layout/src/display.rs b/vortex-layout/src/display.rs index a03481bce73..39605dfb5d1 100644 --- a/vortex-layout/src/display.rs +++ b/vortex-layout/src/display.rs @@ -230,6 +230,7 @@ mod tests { use vortex_buffer::BitBufferMut; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use vortex_utils::env::EnvVarGuard; use crate::IntoLayout; @@ -242,12 +243,14 @@ mod tests { use crate::sequence::SequenceId; use crate::sequence::SequentialArrayStreamExt; use crate::strategy::LayoutStrategy; + use crate::test::SESSION; /// Test display_tree with inline array_tree metadata (no segment source needed). #[test] fn test_display_tree_inline_array_tree() { let _guard = EnvVarGuard::set("FLAT_LAYOUT_INLINE_ARRAY_NODE", "1"); block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); @@ -267,7 +270,7 @@ mod tests { Arc::::clone(&segments), array1.into_array().to_array_stream().sequenced(ptr1), eof1, - handle.clone(), + &session, ) .await .unwrap(); @@ -294,7 +297,7 @@ mod tests { .to_array_stream() .sequenced(ptr2), eof2, - handle.clone(), + &session, ) .await .unwrap(); @@ -342,6 +345,7 @@ vortex.struct, dtype: {numbers=i64?, strings=utf8}, children: 2, rows: 5 // Ensure inline array node is disabled for this test let _guard = EnvVarGuard::remove("FLAT_LAYOUT_INLINE_ARRAY_NODE"); block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); @@ -354,7 +358,7 @@ vortex.struct, dtype: {numbers=i64?, strings=utf8}, children: 2, rows: 5 Arc::::clone(&segments), array1.into_array().to_array_stream().sequenced(ptr1), eof1, - handle.clone(), + &session, ) .await .unwrap(); @@ -368,7 +372,7 @@ vortex.struct, dtype: {numbers=i64?, strings=utf8}, children: 2, rows: 5 Arc::::clone(&segments), array2.into_array().to_array_stream().sequenced(ptr2), eof2, - handle.clone(), + &session, ) .await .unwrap(); @@ -407,13 +411,14 @@ vortex.chunked, dtype: i32, children: 2, rows: 10 // Create a simple primitive array let array = PrimitiveArray::new(buffer![1i32, 2, 3, 4, 5], Validity::AllValid); let layout = block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); FlatLayoutStrategy::default() .write_stream( ctx.clone(), Arc::::clone(&segments), array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap() @@ -449,13 +454,14 @@ vortex.flat, dtype: i32?, segment 0, buffers=[20B], total=20B // Create a simple primitive array let array = PrimitiveArray::new(buffer![10i64, 20, 30], Validity::NonNullable); let layout = block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); FlatLayoutStrategy::default() .write_stream( ctx, Arc::::clone(&segments), array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap() diff --git a/vortex-layout/src/layouts/buffered.rs b/vortex-layout/src/layouts/buffered.rs index 6a8001fd397..aa5d64c67fd 100644 --- a/vortex-layout/src/layouts/buffered.rs +++ b/vortex-layout/src/layouts/buffered.rs @@ -12,7 +12,7 @@ use futures::StreamExt as _; use futures::pin_mut; use vortex_array::ArrayContext; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_session::VortexSession; use crate::LayoutRef; use crate::LayoutStrategy; @@ -47,7 +47,7 @@ impl LayoutStrategy for BufferedStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { let dtype = stream.dtype().clone(); let buffer_size = self.buffer_size; @@ -102,7 +102,7 @@ impl LayoutStrategy for BufferedStrategy { segment_sink, SequentialStreamAdapter::new(dtype, buffered_stream).sendable(), eof, - handle, + session, ) .await } diff --git a/vortex-layout/src/layouts/chunked/reader.rs b/vortex-layout/src/layouts/chunked/reader.rs index d284f2f4d5e..756e5573704 100644 --- a/vortex-layout/src/layouts/chunked/reader.rs +++ b/vortex-layout/src/layouts/chunked/reader.rs @@ -343,6 +343,7 @@ mod test { use vortex_array::expr::root; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use crate::LayoutRef; use crate::LayoutStrategy; @@ -363,22 +364,26 @@ mod test { let segments = Arc::new(TestSegments::default()); let strategy = ChunkedLayoutStrategy::new(FlatLayoutStrategy::default()); let (mut sequence_id, eof) = SequenceId::root().split(); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - SequentialStreamAdapter::new( - DType::Primitive(PType::I32, NonNullable), - stream::iter([ - Ok((sequence_id.advance(), buffer![1, 2, 3].into_array())), - Ok((sequence_id.advance(), buffer![4, 5, 6].into_array())), - Ok((sequence_id.advance(), buffer![7, 8, 9].into_array())), - ]), + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + segments2, + SequentialStreamAdapter::new( + DType::Primitive(PType::I32, NonNullable), + stream::iter([ + Ok((sequence_id.advance(), buffer![1, 2, 3].into_array())), + Ok((sequence_id.advance(), buffer![4, 5, 6].into_array())), + Ok((sequence_id.advance(), buffer![7, 8, 9].into_array())), + ]), + ) + .sendable(), + eof, + &session, ) - .sendable(), - eof, - handle, - ) + .await }) .unwrap(); diff --git a/vortex-layout/src/layouts/chunked/writer.rs b/vortex-layout/src/layouts/chunked/writer.rs index 621159a2025..29596fadff0 100644 --- a/vortex-layout/src/layouts/chunked/writer.rs +++ b/vortex-layout/src/layouts/chunked/writer.rs @@ -11,7 +11,8 @@ use futures::stream; use vortex_array::ArrayContext; use vortex_error::VortexExpect; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_io::session::RuntimeSessionExt; +use vortex_session::VortexSession; use crate::IntoLayout; use crate::LayoutRef; @@ -46,11 +47,12 @@ impl LayoutStrategy for ChunkedLayoutStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, mut eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { let dtype = stream.dtype().clone(); let dtype2 = dtype.clone(); let chunk_strategy = Arc::clone(&self.chunk_strategy); + let handle = session.handle(); // We spawn each child to allow parallelism when processing chunks. let stream = stream! { @@ -62,8 +64,10 @@ impl LayoutStrategy for ChunkedLayoutStrategy { let ctx = ctx.clone(); let segment_sink = Arc::clone(&segment_sink); let dtype = dtype2.clone(); + let session = session.clone(); yield handle.spawn_nested(move |handle| async move { + let session = session.with_handle(handle); chunk_strategy .write_stream( ctx, @@ -74,7 +78,7 @@ impl LayoutStrategy for ChunkedLayoutStrategy { ) .sendable(), chunk_eof, - handle, + &session, ) .await }) diff --git a/vortex-layout/src/layouts/collect.rs b/vortex-layout/src/layouts/collect.rs index c2e3126b236..916d63ce485 100644 --- a/vortex-layout/src/layouts/collect.rs +++ b/vortex-layout/src/layouts/collect.rs @@ -12,7 +12,7 @@ use vortex_array::IntoArray; use vortex_array::arrays::ChunkedArray; use vortex_error::VortexExpect; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_session::VortexSession; use crate::LayoutRef; use crate::LayoutStrategy; @@ -44,7 +44,7 @@ impl LayoutStrategy for CollectStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { // Read the whole stream, then write one Chunked stream to the inner thing let dtype = stream.dtype().clone(); @@ -68,7 +68,7 @@ impl LayoutStrategy for CollectStrategy { let adapted = Box::pin(SequentialStreamAdapter::new(dtype, collected_stream)); self.child - .write_stream(ctx, segment_sink, adapted, eof, handle) + .write_stream(ctx, segment_sink, adapted, eof, session) .await } diff --git a/vortex-layout/src/layouts/compressed.rs b/vortex-layout/src/layouts/compressed.rs index 71a2834d610..24dc2a02874 100644 --- a/vortex-layout/src/layouts/compressed.rs +++ b/vortex-layout/src/layouts/compressed.rs @@ -10,7 +10,8 @@ use vortex_array::ArrayRef; use vortex_array::expr::stats::Stat; use vortex_btrblocks::BtrBlocksCompressor; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_io::session::RuntimeSessionExt; +use vortex_session::VortexSession; use crate::LayoutRef; use crate::LayoutStrategy; @@ -82,16 +83,16 @@ impl LayoutStrategy for CompressingStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { let dtype = stream.dtype().clone(); let compressor = Arc::clone(&self.compressor); - let handle2 = handle.clone(); + let handle = session.handle(); let stream = stream .map(move |chunk| { let compressor = Arc::clone(&compressor); - handle2.spawn_cpu(move || { + handle.spawn_cpu(move || { let (sequence_id, chunk) = chunk?; // Compute the stats for the chunk prior to compression chunk @@ -108,7 +109,7 @@ impl LayoutStrategy for CompressingStrategy { segment_sink, SequentialStreamAdapter::new(dtype, stream).sendable(), eof, - handle, + session, ) .await } diff --git a/vortex-layout/src/layouts/dict/reader.rs b/vortex-layout/src/layouts/dict/reader.rs index 65e9bfac3a6..486bbab14c2 100644 --- a/vortex-layout/src/layouts/dict/reader.rs +++ b/vortex-layout/src/layouts/dict/reader.rs @@ -275,9 +275,15 @@ mod tests { use vortex_array::expr::not; use vortex_array::expr::pack; use vortex_array::expr::root; + use vortex_array::scalar_fn::session::ScalarFnSession; + use vortex_array::session::ArraySession; use vortex_array::validity::Validity; use vortex_error::VortexExpect; + use vortex_io::runtime::Handle; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSession; + use vortex_io::session::RuntimeSessionExt; + use vortex_session::VortexSession; use crate::LayoutId; use crate::LayoutRef; @@ -290,11 +296,23 @@ mod tests { use crate::sequence::SequentialArrayStreamExt; use crate::sequence::SequentialStreamAdapter; use crate::sequence::SequentialStreamExt; - use crate::test::SESSION; + use crate::session::LayoutSession; + + // FIXME(ngates): Deprecate the global `runtime::single::block_on` helper and require tests + // to call `block_on` on an explicit runtime instance. + fn session_with_handle(handle: Handle) -> VortexSession { + VortexSession::empty() + .with::() + .with::() + .with::() + .with::() + .with_handle(handle) + } #[test] fn reading_nested_packs_works() { block_on(|handle| async move { + let session = session_with_handle(handle); let strategy = DictStrategy::new( FlatLayoutStrategy::default(), FlatLayoutStrategy::default(), @@ -331,7 +349,7 @@ mod tests { ) .sendable(), eof, - handle, + &session, ) .await .unwrap(); @@ -345,7 +363,7 @@ mod tests { ); assert!(layout.encoding_id() == LayoutId::new_ref("vortex.dict")); let actual = layout - .new_reader("".into(), segments, &SESSION) + .new_reader("".into(), segments, &session) .unwrap() .projection_evaluation( &(0..layout.row_count()), @@ -393,6 +411,7 @@ mod tests { #[case] expected: Vec, ) { block_on(|handle| async move { + let session = session_with_handle(handle); let strategy = DictStrategy::new( FlatLayoutStrategy::default(), FlatLayoutStrategy::default(), @@ -415,7 +434,7 @@ mod tests { ) .sendable(), eof, - handle, + &session, ) .await .unwrap(); @@ -428,7 +447,7 @@ mod tests { )), ); let mask = layout - .new_reader("".into(), segments, &SESSION) + .new_reader("".into(), segments, &session) .unwrap() .filter_evaluation(&(0..3), &filter, MaskFuture::new_true(3)) .unwrap() @@ -442,6 +461,7 @@ mod tests { #[test] fn reading_is_null_works() { block_on(|handle| async move { + let session = session_with_handle(handle); let strategy = DictStrategy::new( FlatLayoutStrategy::default(), FlatLayoutStrategy::default(), @@ -479,7 +499,7 @@ mod tests { ) .sendable(), eof, - handle, + &session, ) .await .unwrap(); @@ -487,7 +507,7 @@ mod tests { let expression = not(is_null(root())); // easier to test not_is_null b/c that's the validity array assert_eq!(layout.encoding_id(), LayoutId::new_ref("vortex.dict")); let actual = layout - .new_reader("".into(), segments, &SESSION) + .new_reader("".into(), segments, &session) .unwrap() .projection_evaluation( &(0..layout.row_count()), diff --git a/vortex-layout/src/layouts/dict/writer.rs b/vortex-layout/src/layouts/dict/writer.rs index fd51739d646..a1ca9a2b9df 100644 --- a/vortex-layout/src/layouts/dict/writer.rs +++ b/vortex-layout/src/layouts/dict/writer.rs @@ -33,7 +33,8 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_err; use vortex_io::kanal_ext::KanalExt; -use vortex_io::runtime::Handle; +use vortex_io::session::RuntimeSessionExt; +use vortex_session::VortexSession; use crate::IntoLayout; use crate::LayoutRef; @@ -130,13 +131,13 @@ impl LayoutStrategy for DictStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, mut eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { // Fallback if dtype is not supported if !dict_layout_supported(stream.dtype()) { return self .fallback - .write_stream(ctx, segment_sink, stream, eof, handle) + .write_stream(ctx, segment_sink, stream, eof, session) .await; } @@ -158,7 +159,7 @@ impl LayoutStrategy for DictStrategy { // first chunk did not compress to dict, or did not exist. Skip dict layout return self .fallback - .write_stream(ctx, segment_sink, stream, eof, handle) + .write_stream(ctx, segment_sink, stream, eof, session) .await; } @@ -171,6 +172,7 @@ impl LayoutStrategy for DictStrategy { // Each of these pairs becomes a child dict layout. let runs = DictionaryTransformer::new(dict_stream); + let handle = session.handle(); let dtype2 = dtype.clone(); let child_layouts = stream! { pin_mut!(runs); @@ -180,13 +182,15 @@ impl LayoutStrategy for DictStrategy { let codes_eof = eof.split_off(); let ctx2 = ctx.clone(); let segment_sink2 = Arc::clone(&segment_sink); + let session2 = session.clone(); let codes_fut = handle.spawn_nested(move |h| async move { + let session2 = session2.with_handle(h); codes.write_stream( ctx2, segment_sink2, codes_stream.sendable(), codes_eof, - h, + &session2, ).await }); @@ -195,13 +199,15 @@ impl LayoutStrategy for DictStrategy { let ctx2 = ctx.clone(); let segment_sink2 = Arc::clone(&segment_sink); let dtype2 = dtype2.clone(); + let session2 = session.clone(); let values_layout = handle.spawn_nested(move |h| async move { + let session2 = session2.with_handle(h); values.write_stream( ctx2, segment_sink2, SequentialStreamAdapter::new(dtype2, once(values_fut)).sendable(), values_eof, - h, + &session2, ).await }); diff --git a/vortex-layout/src/layouts/flat/reader.rs b/vortex-layout/src/layouts/flat/reader.rs index 2b1bb4f1088..29627e2b4fd 100644 --- a/vortex-layout/src/layouts/flat/reader.rs +++ b/vortex-layout/src/layouts/flat/reader.rs @@ -235,6 +235,7 @@ mod test { use vortex_buffer::buffer; use vortex_error::VortexResult; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use crate::LayoutStrategy; use crate::layouts::flat::writer::FlatLayoutStrategy; @@ -246,6 +247,7 @@ mod test { #[test] fn flat_identity() -> VortexResult<()> { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -257,7 +259,7 @@ mod test { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await?; @@ -284,6 +286,7 @@ mod test { #[test] fn flat_expr() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); @@ -296,7 +299,7 @@ mod test { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -322,6 +325,7 @@ mod test { #[test] fn flat_unaligned_row_mask() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -333,7 +337,7 @@ mod test { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); diff --git a/vortex-layout/src/layouts/flat/writer.rs b/vortex-layout/src/layouts/flat/writer.rs index b8cfa23d51e..0d804ee6fb8 100644 --- a/vortex-layout/src/layouts/flat/writer.rs +++ b/vortex-layout/src/layouts/flat/writer.rs @@ -22,7 +22,7 @@ use vortex_buffer::ByteBuffer; use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_bail; -use vortex_io::runtime::Handle; +use vortex_session::VortexSession; use vortex_session::registry::ReadContext; use vortex_utils::aliases::hash_set::HashSet; @@ -100,7 +100,7 @@ impl LayoutStrategy for FlatLayoutStrategy { segment_sink: SegmentSinkRef, mut stream: SendableSequentialStream, _eof: SequencePointer, - _handle: Handle, + session: &VortexSession, ) -> VortexResult { let ctx = ctx.clone(); let Some(chunk) = stream.next().await else { @@ -161,6 +161,7 @@ impl LayoutStrategy for FlatLayoutStrategy { let buffers = chunk.serialize( &ctx, + session, &SerializeOptions { offset: 0, include_padding: self.include_padding, @@ -223,6 +224,7 @@ mod tests { use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use vortex_mask::AllOr; use vortex_mask::Mask; use vortex_utils::aliases::hash_set::HashSet; @@ -240,6 +242,7 @@ mod tests { #[test] fn flat_stats() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -250,7 +253,7 @@ mod tests { Arc::::clone(&segments), array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -277,6 +280,7 @@ mod tests { #[test] fn truncates_variable_size_stats() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -299,7 +303,7 @@ mod tests { Arc::::clone(&segments), array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -336,6 +340,7 @@ mod tests { #[test] fn struct_array_round_trip() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let mut validity_builder = BitBufferMut::with_capacity(2); validity_builder.append(true); validity_builder.append(false); @@ -366,7 +371,7 @@ mod tests { Arc::::clone(&segments), array.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -415,6 +420,7 @@ mod tests { #[test] fn flat_invalid_array_fails() -> VortexResult<()> { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let prim: PrimitiveArray = (0..10).collect(); let filter = prim.filter(Mask::from_indices(10, vec![2, 3]))?; @@ -433,7 +439,7 @@ mod tests { Arc::::clone(&segments), filter.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await; @@ -454,6 +460,7 @@ mod tests { #[test] fn flat_valid_array_writes() -> VortexResult<()> { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let codes: PrimitiveArray = (0u32..10).collect(); let values: PrimitiveArray = (0..10).collect(); let dict = DictArray::new(codes.into_array(), values.into_array()); @@ -474,7 +481,7 @@ mod tests { Arc::::clone(&segments), dict.into_array().to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await; diff --git a/vortex-layout/src/layouts/repartition.rs b/vortex-layout/src/layouts/repartition.rs index eac657bdf79..03c7e15d722 100644 --- a/vortex-layout/src/layouts/repartition.rs +++ b/vortex-layout/src/layouts/repartition.rs @@ -15,7 +15,7 @@ use vortex_array::arrays::ChunkedArray; use vortex_array::dtype::DType; use vortex_error::VortexExpect; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_session::VortexSession; use crate::LayoutRef; use crate::LayoutStrategy; @@ -97,7 +97,7 @@ impl LayoutStrategy for RepartitionStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { // TODO(os): spawn stream below like: // canon_stream = stream.map(async {to_canonical}).map(spawn).buffered(parallelism) @@ -173,7 +173,7 @@ impl LayoutStrategy for RepartitionStrategy { segment_sink, SequentialStreamAdapter::new(dtype, repartitioned_stream).sendable(), eof, - handle, + session, ) .await } @@ -277,6 +277,7 @@ mod tests { use vortex_array::validity::Validity; use vortex_error::VortexResult; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use super::*; use crate::LayoutStrategy; @@ -285,6 +286,7 @@ mod tests { use crate::segments::TestSegments; use crate::sequence::SequenceId; use crate::sequence::SequentialArrayStreamExt; + use crate::test::SESSION; const ONE_MEG: u64 = 1 << 20; @@ -384,14 +386,17 @@ mod tests { ); let stream = fsl.into_array().to_array_stream().sequenced(ptr); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - stream, - eof, - handle, - ) + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + Arc::::clone(&segments), + stream, + eof, + &session, + ) + .await })?; // The layout should be a ChunkedLayout with multiple children. @@ -446,14 +451,17 @@ mod tests { ); let stream = elements.into_array().to_array_stream().sequenced(ptr); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - stream, - eof, - handle, - ) + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + Arc::::clone(&segments), + stream, + eof, + &session, + ) + .await })?; assert_eq!(layout.row_count(), num_elements as u64); diff --git a/vortex-layout/src/layouts/row_idx/mod.rs b/vortex-layout/src/layouts/row_idx/mod.rs index 97ed6aa601a..a4cabee8e45 100644 --- a/vortex-layout/src/layouts/row_idx/mod.rs +++ b/vortex-layout/src/layouts/row_idx/mod.rs @@ -315,6 +315,7 @@ mod tests { use vortex_array::expr::root; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use crate::LayoutReader; use crate::LayoutStrategy; @@ -329,6 +330,7 @@ mod tests { #[test] fn flat_expr_no_row_id() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -339,7 +341,7 @@ mod tests { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -369,6 +371,7 @@ mod tests { #[test] fn flat_expr_row_id() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -379,7 +382,7 @@ mod tests { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); @@ -409,6 +412,7 @@ mod tests { #[test] fn flat_expr_or() { block_on(|handle| async { + let session = SESSION.clone().with_handle(handle); let ctx = ArrayContext::empty(); let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); @@ -419,7 +423,7 @@ mod tests { Arc::::clone(&segments), array.to_array_stream().sequenced(ptr), eof, - handle, + &session, ) .await .unwrap(); diff --git a/vortex-layout/src/layouts/struct_/reader.rs b/vortex-layout/src/layouts/struct_/reader.rs index 6216388426d..5d0b2cf0a8d 100644 --- a/vortex-layout/src/layouts/struct_/reader.rs +++ b/vortex-layout/src/layouts/struct_/reader.rs @@ -419,6 +419,7 @@ mod tests { use vortex_array::validity::Validity; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use vortex_mask::Mask; use crate::LayoutRef; @@ -441,23 +442,27 @@ mod tests { Arc::new(FlatLayoutStrategy::default()), Arc::new(FlatLayoutStrategy::default()), ); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - StructArray::try_new( - Vec::::new().into(), - vec![], - 5, - Validity::NonNullable, + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + segments2, + StructArray::try_new( + Vec::::new().into(), + vec![], + 5, + Validity::NonNullable, + ) + .unwrap() + .into_array() + .to_array_stream() + .sequenced(ptr), + eof, + &session, ) - .unwrap() - .into_array() - .to_array_stream() - .sequenced(ptr), - eof, - handle, - ) + .await }) .unwrap(); @@ -474,25 +479,29 @@ mod tests { Arc::new(FlatLayoutStrategy::default()), Arc::new(FlatLayoutStrategy::default()), ); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - StructArray::from_fields( - [ - ("a", buffer![7, 2, 3].into_array()), - ("b", buffer![4, 5, 6].into_array()), - ("c", buffer![4, 5, 6].into_array()), - ] - .as_slice(), + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + segments2, + StructArray::from_fields( + [ + ("a", buffer![7, 2, 3].into_array()), + ("b", buffer![4, 5, 6].into_array()), + ("c", buffer![4, 5, 6].into_array()), + ] + .as_slice(), + ) + .unwrap() + .into_array() + .to_array_stream() + .sequenced(ptr), + eof, + &session, ) - .unwrap() - .into_array() - .to_array_stream() - .sequenced(ptr), - eof, - handle, - ) + .await }) .unwrap(); @@ -510,25 +519,29 @@ mod tests { Arc::new(FlatLayoutStrategy::default()), Arc::new(FlatLayoutStrategy::default()), ); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - StructArray::try_from_iter_with_validity( - [ - ("a", buffer![7, 2, 3].into_array()), - ("b", buffer![4, 5, 6].into_array()), - ("c", buffer![4, 5, 6].into_array()), - ], - Validity::Array(BoolArray::from_iter([false, true, true]).into_array()), + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + segments2, + StructArray::try_from_iter_with_validity( + [ + ("a", buffer![7, 2, 3].into_array()), + ("b", buffer![4, 5, 6].into_array()), + ("c", buffer![4, 5, 6].into_array()), + ], + Validity::Array(BoolArray::from_iter([false, true, true]).into_array()), + ) + .unwrap() + .into_array() + .to_array_stream() + .sequenced(ptr), + eof, + &session, ) - .unwrap() - .into_array() - .to_array_stream() - .sequenced(ptr), - eof, - handle, - ) + .await }) .unwrap(); @@ -551,37 +564,43 @@ mod tests { Arc::new(FlatLayoutStrategy::default()), Arc::new(FlatLayoutStrategy::default()), ); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - StructArray::try_from_iter_with_validity( - [( - "a", - StructArray::try_from_iter_with_validity( - [( - "b", - StructArray::try_from_iter_with_validity( - [("c", buffer![4, 5, 6].into_array())], - Validity::NonNullable, - ) - .unwrap() - .into_array(), - )], - Validity::Array(BoolArray::from_iter([true, false, true]).into_array()), - ) - .unwrap() - .into_array(), - )], - Validity::NonNullable, + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream( + ctx, + segments2, + StructArray::try_from_iter_with_validity( + [( + "a", + StructArray::try_from_iter_with_validity( + [( + "b", + StructArray::try_from_iter_with_validity( + [("c", buffer![4, 5, 6].into_array())], + Validity::NonNullable, + ) + .unwrap() + .into_array(), + )], + Validity::Array( + BoolArray::from_iter([true, false, true]).into_array(), + ), + ) + .unwrap() + .into_array(), + )], + Validity::NonNullable, + ) + .unwrap() + .into_array() + .to_array_stream() + .sequenced(ptr), + eof, + &session, ) - .unwrap() - .into_array() - .to_array_stream() - .sequenced(ptr), - eof, - handle, - ) + .await }) .unwrap(); diff --git a/vortex-layout/src/layouts/table.rs b/vortex-layout/src/layouts/table.rs index 1a0aacc5f0a..f8a0cee3581 100644 --- a/vortex-layout/src/layouts/table.rs +++ b/vortex-layout/src/layouts/table.rs @@ -27,7 +27,8 @@ use vortex_error::VortexError; use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_io::kanal_ext::KanalExt; -use vortex_io::runtime::Handle; +use vortex_io::session::RuntimeSessionExt; +use vortex_session::VortexSession; use vortex_utils::aliases::DefaultHashBuilder; use vortex_utils::aliases::hash_map::HashMap; use vortex_utils::aliases::hash_set::HashSet; @@ -195,7 +196,7 @@ impl LayoutStrategy for TableStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, mut eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { let dtype = stream.dtype().clone(); @@ -203,7 +204,7 @@ impl LayoutStrategy for TableStrategy { if !dtype.is_struct() { return self .fallback - .write_stream(ctx, segment_sink, stream, eof, handle) + .write_stream(ctx, segment_sink, stream, eof, session) .await; } @@ -260,6 +261,7 @@ impl LayoutStrategy for TableStrategy { (0..stream_count).map(|_| kanal::bounded_async(1)).unzip(); // Spawn a task to fan out column chunks to their respective transposed streams + let handle = session.handle(); handle .spawn(async move { pin_mut!(columns_vec_stream); @@ -311,7 +313,10 @@ impl LayoutStrategy for TableStrategy { .sendable(); let child_eof = eof.split_off(); let field = Field::Name(name.clone()); - handle.spawn_nested(|h| { + let session = session.clone(); + let ctx = ctx.clone(); + let segment_sink = Arc::clone(&segment_sink); + handle.spawn_nested(move |h| { let validity = Arc::clone(&self.validity); // descend further and try with new fields let writer = self @@ -327,8 +332,7 @@ impl LayoutStrategy for TableStrategy { Arc::clone(&self.fallback) } }); - let ctx = ctx.clone(); - let segment_sink = Arc::clone(&segment_sink); + let session = session.with_handle(h); async move { // If we have a matching writer, we use it. @@ -336,12 +340,12 @@ impl LayoutStrategy for TableStrategy { // Write validity stream if index == 0 && is_nullable { validity - .write_stream(ctx, segment_sink, column_stream, child_eof, h) + .write_stream(ctx, segment_sink, column_stream, child_eof, &session) .await } else { // Use the underlying writer, otherwise use the fallback writer. writer - .write_stream(ctx, segment_sink, column_stream, child_eof, h) + .write_stream(ctx, segment_sink, column_stream, child_eof, &session) .await } } diff --git a/vortex-layout/src/layouts/zoned/reader.rs b/vortex-layout/src/layouts/zoned/reader.rs index cef2370afdf..23118e8ce5c 100644 --- a/vortex-layout/src/layouts/zoned/reader.rs +++ b/vortex-layout/src/layouts/zoned/reader.rs @@ -407,6 +407,7 @@ mod test { use vortex_array::expr::root; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use vortex_mask::Mask; use crate::LayoutRef; @@ -443,14 +444,12 @@ mod test { .into_array() .to_array_stream() .sequenced(ptr); - let layout = block_on(|handle| { - strategy.write_stream( - ctx, - Arc::::clone(&segments), - array_stream, - eof, - handle, - ) + let segments2 = Arc::::clone(&segments); + let layout = block_on(|handle| async move { + let session = SESSION.clone().with_handle(handle); + strategy + .write_stream(ctx, segments2, array_stream, eof, &session) + .await }) .unwrap(); (segments, layout) diff --git a/vortex-layout/src/layouts/zoned/writer.rs b/vortex-layout/src/layouts/zoned/writer.rs index baa5fe4d61a..3e1d61098b0 100644 --- a/vortex-layout/src/layouts/zoned/writer.rs +++ b/vortex-layout/src/layouts/zoned/writer.rs @@ -11,7 +11,8 @@ use vortex_array::IntoArray; use vortex_array::expr::stats::Stat; use vortex_array::stats::PRUNING_STATS; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_io::session::RuntimeSessionExt; +use vortex_session::VortexSession; use crate::IntoLayout; use crate::LayoutRef; @@ -77,9 +78,10 @@ impl LayoutStrategy for ZonedStrategy { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, mut eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { let stats = Arc::clone(&self.options.stats); + let handle = session.handle(); let handle2 = handle.clone(); let stats_accumulator = Arc::new(Mutex::new(StatsAccumulator::new( @@ -131,7 +133,7 @@ impl LayoutStrategy for ZonedStrategy { Arc::clone(&segment_sink), stream, data_eof, - handle.clone(), + session, ) .await?; @@ -151,7 +153,7 @@ impl LayoutStrategy for ZonedStrategy { .sequenced(eof.split_off()); let zones_layout = self .stats - .write_stream(ctx, Arc::clone(&segment_sink), stats_stream, eof, handle) + .write_stream(ctx, Arc::clone(&segment_sink), stats_stream, eof, session) .await?; Ok(ZonedLayout::new( diff --git a/vortex-layout/src/scan/split_by.rs b/vortex-layout/src/scan/split_by.rs index bd63f349949..6ddc68c2568 100644 --- a/vortex-layout/src/scan/split_by.rs +++ b/vortex-layout/src/scan/split_by.rs @@ -60,6 +60,7 @@ mod test { use vortex_array::dtype::FieldPath; use vortex_buffer::buffer; use vortex_io::runtime::single::block_on; + use vortex_io::session::RuntimeSessionExt; use super::*; use crate::LayoutReaderRef; @@ -75,6 +76,7 @@ mod test { let segments = Arc::new(TestSegments::default()); let (ptr, eof) = SequenceId::root().split(); let layout = block_on(|handle| async { + let session = SCAN_SESSION.clone().with_handle(handle); FlatLayoutStrategy::default() .write_stream( ctx, @@ -84,7 +86,7 @@ mod test { .to_array_stream() .sequenced(ptr), eof, - handle, + &session, ) .await }) diff --git a/vortex-layout/src/strategy.rs b/vortex-layout/src/strategy.rs index 079c70decdf..480bae462fe 100644 --- a/vortex-layout/src/strategy.rs +++ b/vortex-layout/src/strategy.rs @@ -4,7 +4,7 @@ use async_trait::async_trait; use vortex_array::ArrayContext; use vortex_error::VortexResult; -use vortex_io::runtime::Handle; +use vortex_session::VortexSession; use crate::LayoutRef; use crate::segments::SegmentSinkRef; @@ -52,7 +52,7 @@ pub trait LayoutStrategy: 'static + Send + Sync { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult; /// Returns the number of bytes currently buffered by this strategy and any child strategies. @@ -73,10 +73,10 @@ impl LayoutStrategy for std::sync::Arc { segment_sink: SegmentSinkRef, stream: SendableSequentialStream, eof: SequencePointer, - handle: Handle, + session: &VortexSession, ) -> VortexResult { (**self) - .write_stream(ctx, segment_sink, stream, eof, handle) + .write_stream(ctx, segment_sink, stream, eof, session) .await } diff --git a/vortex-python/src/arrays/mod.rs b/vortex-python/src/arrays/mod.rs index 7926f7aa3e3..baabe693614 100644 --- a/vortex-python/src/arrays/mod.rs +++ b/vortex-python/src/arrays/mod.rs @@ -698,10 +698,10 @@ impl PyArray { /// >>> arr = vx.array([1, 2, None, 3]) /// >>> print(arr.display_tree()) # doctest: +ELLIPSIS /// root: vortex.primitive(i64?, len=4) nbytes=33 B (100.00%) - /// metadata: EmptyMetadata + /// metadata: ptype: i64 /// buffer: values host 32 B (align=8) (96.97%) /// validity: vortex.bool(bool, len=4) nbytes=1 B (3.03%)... - /// metadata: BoolMetadata { offset: 0 } + /// metadata: offset: 0 /// buffer: bits host 1 B (align=1) (100.00%) /// /// ``` @@ -717,7 +717,11 @@ impl PyArray { // FIXME(ngates): do not copy to vec, use buffer protocol let array = PyArrayRef::extract(slf.as_any().as_borrowed())?; Ok(array - .serialize(ctx, &Default::default())? + .serialize( + ctx, + &vortex::session::VortexSession::empty(), + &Default::default(), + )? .into_iter() .map(|buffer| buffer.to_vec()) .collect()) @@ -733,7 +737,7 @@ impl PyArray { let py = slf.py(); let array = PyArrayRef::extract(slf.as_any().as_borrowed())?.into_inner(); - let mut encoder = MessageEncoder::default(); + let mut encoder = MessageEncoder::new(vortex::session::VortexSession::empty()); let buffers = encoder.encode(EncoderMessage::Array(&array))?; // Return buffers as a list instead of concatenating @@ -765,7 +769,7 @@ impl PyArray { let array = PyArrayRef::extract(slf.as_any().as_borrowed())?.into_inner(); - let mut encoder = MessageEncoder::default(); + let mut encoder = MessageEncoder::new(vortex::session::VortexSession::empty()); let array_buffers = encoder.encode(EncoderMessage::Array(&array))?; let dtype_buffers = encoder.encode(EncoderMessage::DType(array.dtype()))?; diff --git a/vortex-python/src/arrays/py/array.rs b/vortex-python/src/arrays/py/array.rs index 1653ed4b2aa..b73fc9c6fb0 100644 --- a/vortex-python/src/arrays/py/array.rs +++ b/vortex-python/src/arrays/py/array.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use pyo3::Bound; @@ -33,6 +35,12 @@ pub struct PythonArray { pub(super) stats: ArrayStats, } +impl Display for PythonArray { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "len: {}, dtype: {}", self.len, self.dtype) + } +} + impl<'py> FromPyObject<'_, 'py> for PythonArray { type Error = PyErr; diff --git a/vortex-python/src/arrays/py/vtable.rs b/vortex-python/src/arrays/py/vtable.rs index 106cce62358..aa646e971fe 100644 --- a/vortex-python/src/arrays/py/vtable.rs +++ b/vortex-python/src/arrays/py/vtable.rs @@ -94,7 +94,10 @@ impl VTable for PythonVTable { vortex_panic!("PythonArray child_name index {idx} out of bounds") } - fn serialize(_array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + _array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(None) } diff --git a/vortex-python/src/lib.rs b/vortex-python/src/lib.rs index c84f09588ef..a4a1f7a8057 100644 --- a/vortex-python/src/lib.rs +++ b/vortex-python/src/lib.rs @@ -8,9 +8,12 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; use std::ops::Deref; use std::sync::LazyLock; +use log::LevelFilter; use pyo3::exceptions::PyRuntimeError; use pyo3::intern; use pyo3::prelude::*; +use pyo3_log::Caching; +use pyo3_log::Logger; pub(crate) mod arrays; pub mod arrow; @@ -33,9 +36,6 @@ mod scan; mod serde; mod store; -use log::LevelFilter; -use pyo3_log::Caching; -use pyo3_log::Logger; use tokio::runtime::Runtime; use vortex::VortexSessionDefault; use vortex::error::VortexError; diff --git a/vortex-tensor/public-api.lock b/vortex-tensor/public-api.lock index d4fb909e791..0c1ae57a82e 100644 --- a/vortex-tensor/public-api.lock +++ b/vortex-tensor/public-api.lock @@ -54,7 +54,7 @@ pub fn vortex_tensor::encodings::turboquant::TurboQuant::nbuffers(_array: vortex pub fn vortex_tensor::encodings::turboquant::TurboQuant::reduce_parent(array: vortex_array::array::view::ArrayView<'_, Self>, parent: &vortex_array::array::erased::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> -pub fn vortex_tensor::encodings::turboquant::TurboQuant::serialize(array: vortex_array::array::view::ArrayView<'_, Self>) -> vortex_error::VortexResult>> +pub fn vortex_tensor::encodings::turboquant::TurboQuant::serialize(array: vortex_array::array::view::ArrayView<'_, Self>, _session: &vortex_session::VortexSession) -> vortex_error::VortexResult>> pub fn vortex_tensor::encodings::turboquant::TurboQuant::slot_name(_array: vortex_array::array::view::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -122,6 +122,10 @@ impl core::fmt::Debug for vortex_tensor::encodings::turboquant::TurboQuantData pub fn vortex_tensor::encodings::turboquant::TurboQuantData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::fmt::Display for vortex_tensor::encodings::turboquant::TurboQuantData + +pub fn vortex_tensor::encodings::turboquant::TurboQuantData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + impl vortex_array::hash::ArrayEq for vortex_tensor::encodings::turboquant::TurboQuantData pub fn vortex_tensor::encodings::turboquant::TurboQuantData::array_eq(&self, other: &Self, _precision: vortex_array::hash::Precision) -> bool diff --git a/vortex-tensor/src/encodings/turboquant/array/data.rs b/vortex-tensor/src/encodings/turboquant/array/data.rs index 6693298922c..dd1867eb598 100644 --- a/vortex-tensor/src/encodings/turboquant/array/data.rs +++ b/vortex-tensor/src/encodings/turboquant/array/data.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +use std::fmt::Display; +use std::fmt::Formatter; use std::sync::Arc; use vortex_array::ArrayRef; @@ -47,6 +49,16 @@ pub struct TurboQuantData { pub(crate) num_rounds: u8, } +impl Display for TurboQuantData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "dimension: {}, bit_width: {}, num_rounds: {}", + self.dimension, self.bit_width, self.num_rounds + ) + } +} + impl TurboQuantData { /// Build a `TurboQuantData` with validation. /// diff --git a/vortex-tensor/src/encodings/turboquant/tests.rs b/vortex-tensor/src/encodings/turboquant/tests.rs index b6d2fa77bf7..8e633469a3d 100644 --- a/vortex-tensor/src/encodings/turboquant/tests.rs +++ b/vortex-tensor/src/encodings/turboquant/tests.rs @@ -1175,7 +1175,10 @@ fn serde_roundtrip() -> VortexResult<()> { // Serialize the TQ child. let array_ctx = ArrayContext::empty(); - let serialized = tq_child.serialize(&array_ctx, &SerializeOptions::default())?; + let serde_session = VortexSession::empty().with::(); + serde_session.arrays().register(TurboQuant); + let serialized = + tq_child.serialize(&array_ctx, &serde_session, &SerializeOptions::default())?; let mut concat = ByteBufferMut::empty(); for buf in serialized { @@ -1183,8 +1186,6 @@ fn serde_roundtrip() -> VortexResult<()> { } // Deserialize. The session needs TurboQuant and BitPacked (for rotation signs) registered. - let serde_session = VortexSession::empty().with::(); - serde_session.arrays().register(TurboQuant); serde_session.arrays().register(BitPacked); let parts = SerializedArray::try_from(concat.freeze())?; @@ -1230,18 +1231,19 @@ fn serde_roundtrip_empty() -> VortexResult<()> { let dtype = tq_child.dtype().clone(); let len = tq_child.len(); + let serde_session = VortexSession::empty().with::(); + serde_session.arrays().register(TurboQuant); + serde_session.arrays().register(BitPacked); + let array_ctx = ArrayContext::empty(); - let serialized = tq_child.serialize(&array_ctx, &SerializeOptions::default())?; + let serialized = + tq_child.serialize(&array_ctx, &serde_session, &SerializeOptions::default())?; let mut concat = ByteBufferMut::empty(); for buf in serialized { concat.extend_from_slice(buf.as_ref()); } - let serde_session = VortexSession::empty().with::(); - serde_session.arrays().register(TurboQuant); - serde_session.arrays().register(BitPacked); - let parts = SerializedArray::try_from(concat.freeze())?; let decoded = parts.decode( &dtype, diff --git a/vortex-tensor/src/encodings/turboquant/vtable.rs b/vortex-tensor/src/encodings/turboquant/vtable.rs index bf94d4a6913..b673dea6ba5 100644 --- a/vortex-tensor/src/encodings/turboquant/vtable.rs +++ b/vortex-tensor/src/encodings/turboquant/vtable.rs @@ -247,7 +247,10 @@ impl VTable for TurboQuant { None } - fn serialize(array: ArrayView<'_, Self>) -> VortexResult>> { + fn serialize( + array: ArrayView<'_, Self>, + _session: &VortexSession, + ) -> VortexResult>> { Ok(Some( TurboQuantMetadata::new(array.bit_width, array.num_rounds).encode_to_vec(), )) diff --git a/vortex-web/crate/src/wasm.rs b/vortex-web/crate/src/wasm.rs index 1139907f47f..e22df2c2b4d 100644 --- a/vortex-web/crate/src/wasm.rs +++ b/vortex-web/crate/src/wasm.rs @@ -26,6 +26,7 @@ use vortex::array::arrow::ArrowArrayExecutor; use vortex::array::buffer::BufferHandle; use vortex::array::dtype::DType; use vortex::array::serde::SerializedArray; +use vortex::array::session::ArraySessionExt; use vortex::array::stream::ArrayStream; use vortex::buffer::Alignment; use vortex::buffer::ByteBufferMut; @@ -368,7 +369,7 @@ impl VortexFileHandle { .decode(&dtype, row_count, ctx, &self.session) .map_err(|e| JsValue::from_str(&e.to_string()))?; - let tree = build_array_encoding_tree_from_array(&array); + let tree = build_array_encoding_tree_from_array(&array, &self.session); serde_json::to_string(&tree) .map_err(|e| JsValue::from_str(&format!("JSON serialization failed: {e}"))) } @@ -636,14 +637,17 @@ fn build_array_encoding_tree(parts: &SerializedArray, ctx: &ReadContext) -> Arra /// Recursively build the array encoding tree from a fully decoded array, /// extracting dtype, child names, and buffer names from the encoding vtables. -fn build_array_encoding_tree_from_array(array: &ArrayRef) -> ArrayEncodingNodeJson { +fn build_array_encoding_tree_from_array( + array: &ArrayRef, + session: &VortexSession, +) -> ArrayEncodingNodeJson { let encoding = array.encoding_id().to_string(); let dtype = array.dtype().to_string(); let buffer_names = array.buffer_names(); let buffer_handles = array.buffer_handles(); let buffer_lengths: Vec = buffer_handles.iter().map(|b| b.len()).collect(); - let metadata_bytes = array - .metadata() + let metadata_bytes = session + .array_serialize(array) .ok() .flatten() .map(|m| m.len()) @@ -656,7 +660,7 @@ fn build_array_encoding_tree_from_array(array: &ArrayRef) -> ArrayEncodingNodeJs .collect(); let children: Vec = named_children .iter() - .map(|(_, child)| build_array_encoding_tree_from_array(child)) + .map(|(_, child)| build_array_encoding_tree_from_array(child, session)) .collect(); ArrayEncodingNodeJson {