From 69afd8d131445d1fe27ff3ca53da380f8150f9da Mon Sep 17 00:00:00 2001 From: Joe Isaacs Date: Tue, 7 Apr 2026 15:58:03 +0100 Subject: [PATCH 1/4] remove old vtable! macro Signed-off-by: Joe Isaacs --- encodings/alp/src/alp/array.rs | 4 ++-- encodings/alp/src/alp_rd/array.rs | 4 ++-- encodings/bytebool/src/array.rs | 4 ++-- encodings/datetime-parts/src/array.rs | 4 ++-- .../src/decimal_byte_parts/mod.rs | 4 ++-- .../fastlanes/src/bitpacking/vtable/mod.rs | 4 ++-- encodings/fastlanes/src/delta/vtable/mod.rs | 4 ++-- encodings/fastlanes/src/for/vtable/mod.rs | 4 ++-- encodings/fastlanes/src/rle/vtable/mod.rs | 4 ++-- encodings/fsst/src/array.rs | 4 ++-- encodings/parquet-variant/src/vtable.rs | 4 ++-- encodings/pco/src/array.rs | 4 ++-- encodings/runend/src/array.rs | 4 ++-- encodings/sequence/src/array.rs | 4 ++-- encodings/sparse/src/lib.rs | 4 ++-- encodings/zigzag/src/array.rs | 4 ++-- encodings/zstd/src/array.rs | 4 ++-- encodings/zstd/src/zstd_buffers.rs | 4 ++-- vortex-array/src/array/vtable/mod.rs | 17 ++++------------- vortex-array/src/arrays/bool/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/chunked/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/constant/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/decimal/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/dict/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/extension/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/filter/vtable.rs | 4 ++-- .../src/arrays/fixed_size_list/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/list/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/listview/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/masked/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/null/mod.rs | 4 ++-- vortex-array/src/arrays/patched/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/primitive/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/scalar_fn/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/shared/vtable.rs | 4 ++-- vortex-array/src/arrays/slice/vtable.rs | 4 ++-- vortex-array/src/arrays/struct_/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/varbin/vtable/mod.rs | 4 ++-- .../src/arrays/varbinview/vtable/mod.rs | 4 ++-- vortex-array/src/arrays/variant/vtable/mod.rs | 4 ++-- .../src/encodings/turboquant/vtable.rs | 4 ++-- 41 files changed, 84 insertions(+), 93 deletions(-) diff --git a/encodings/alp/src/alp/array.rs b/encodings/alp/src/alp/array.rs index aae281d3be4..6127c3cbe6b 100644 --- a/encodings/alp/src/alp/array.rs +++ b/encodings/alp/src/alp/array.rs @@ -27,7 +27,6 @@ use vortex_array::patches::PatchesMetadata; use vortex_array::require_child; use vortex_array::require_patches; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; use vortex_array::vtable::ValidityVTableFromChild; @@ -44,7 +43,8 @@ use crate::alp::decompress::execute_decompress; use crate::alp::rules::PARENT_KERNELS; use crate::alp::rules::RULES; -vtable!(ALP, ALP, ALPData); +/// A [`ALP`]-encoded Vortex array. +pub type ALPArray = Array; impl ArrayHash for ALPData { fn array_hash(&self, state: &mut H, _precision: Precision) { diff --git a/encodings/alp/src/alp_rd/array.rs b/encodings/alp/src/alp_rd/array.rs index fe7113c288f..49f65f6282d 100644 --- a/encodings/alp/src/alp_rd/array.rs +++ b/encodings/alp/src/alp_rd/array.rs @@ -31,7 +31,6 @@ use vortex_array::require_child; use vortex_array::require_patches; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; use vortex_array::vtable::ValidityVTableFromChild; @@ -48,7 +47,8 @@ use crate::alp_rd::kernel::PARENT_KERNELS; use crate::alp_rd::rules::RULES; use crate::alp_rd_decode; -vtable!(ALPRD, ALPRD, ALPRDData); +/// A [`ALPRD`]-encoded Vortex array. +pub type ALPRDArray = Array; #[derive(Clone, prost::Message)] pub struct ALPRDMetadata { diff --git a/encodings/bytebool/src/array.rs b/encodings/bytebool/src/array.rs index ce2661ef082..7338b08e384 100644 --- a/encodings/bytebool/src/array.rs +++ b/encodings/bytebool/src/array.rs @@ -22,7 +22,6 @@ use vortex_array::dtype::DType; use vortex_array::scalar::Scalar; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; @@ -39,7 +38,8 @@ use vortex_session::VortexSession; use crate::kernel::PARENT_KERNELS; -vtable!(ByteBool, ByteBool, ByteBoolData); +/// A [`ByteBool`]-encoded Vortex array. +pub type ByteBoolArray = Array; impl ArrayHash for ByteBoolData { fn array_hash(&self, state: &mut H, precision: Precision) { diff --git a/encodings/datetime-parts/src/array.rs b/encodings/datetime-parts/src/array.rs index c3053dcac23..167e5b08df5 100644 --- a/encodings/datetime-parts/src/array.rs +++ b/encodings/datetime-parts/src/array.rs @@ -23,7 +23,6 @@ use vortex_array::dtype::DType; use vortex_array::dtype::Nullability; use vortex_array::dtype::PType; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; use vortex_array::vtable::ValidityVTableFromChild; @@ -41,7 +40,8 @@ use crate::compute::kernel::PARENT_KERNELS; use crate::compute::rules::PARENT_RULES; use crate::split_temporal; -vtable!(DateTimeParts, DateTimeParts, DateTimePartsData); +/// A [`DateTimeParts`]-encoded Vortex array. +pub type DateTimePartsArray = Array; impl ArrayHash for DateTimePartsData { fn array_hash(&self, _state: &mut H, _precision: Precision) {} 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 e3fbdb4f479..0cf4056b37b 100644 --- a/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs +++ b/encodings/decimal-byte-parts/src/decimal_byte_parts/mod.rs @@ -31,7 +31,6 @@ use vortex_array::scalar::DecimalValue; use vortex_array::scalar::Scalar; use vortex_array::scalar::ScalarValue; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; @@ -46,7 +45,8 @@ use vortex_session::VortexSession; use crate::decimal_byte_parts::compute::kernel::PARENT_KERNELS; use crate::decimal_byte_parts::rules::PARENT_RULES; -vtable!(DecimalByteParts, DecimalByteParts, DecimalBytePartsData); +/// A [`DecimalByteParts`]-encoded Vortex array. +pub type DecimalBytePartsArray = Array; impl ArrayHash for DecimalBytePartsData { fn array_hash(&self, _state: &mut H, _precision: Precision) {} diff --git a/encodings/fastlanes/src/bitpacking/vtable/mod.rs b/encodings/fastlanes/src/bitpacking/vtable/mod.rs index 9e9ed2a400d..0898ecece50 100644 --- a/encodings/fastlanes/src/bitpacking/vtable/mod.rs +++ b/encodings/fastlanes/src/bitpacking/vtable/mod.rs @@ -28,7 +28,6 @@ use vortex_array::require_patches; use vortex_array::require_validity; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::child_to_validity; use vortex_array::vtable::validity_to_child; @@ -56,7 +55,8 @@ mod operations; mod rules; mod validity; -vtable!(BitPacked, BitPacked, BitPackedData); +/// A [`BitPacked`]-encoded Vortex array. +pub type BitPackedArray = Array; #[derive(Clone, prost::Message)] pub struct BitPackedMetadata { diff --git a/encodings/fastlanes/src/delta/vtable/mod.rs b/encodings/fastlanes/src/delta/vtable/mod.rs index 2dc2f040941..03bb6a2ce1a 100644 --- a/encodings/fastlanes/src/delta/vtable/mod.rs +++ b/encodings/fastlanes/src/delta/vtable/mod.rs @@ -23,7 +23,6 @@ use vortex_array::dtype::DType; use vortex_array::dtype::PType; use vortex_array::match_each_unsigned_integer_ptype; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_error::VortexExpect; use vortex_error::VortexResult; @@ -45,7 +44,8 @@ mod rules; mod slice; mod validity; -vtable!(Delta, Delta, DeltaData); +/// A [`Delta`]-encoded Vortex array. +pub type DeltaArray = Array; #[derive(Clone, prost::Message)] #[repr(C)] diff --git a/encodings/fastlanes/src/for/vtable/mod.rs b/encodings/fastlanes/src/for/vtable/mod.rs index e016d31f661..7206b7a84e1 100644 --- a/encodings/fastlanes/src/for/vtable/mod.rs +++ b/encodings/fastlanes/src/for/vtable/mod.rs @@ -22,7 +22,6 @@ use vortex_array::dtype::DType; use vortex_array::scalar::Scalar; use vortex_array::scalar::ScalarValue; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTableFromChild; use vortex_error::VortexExpect; @@ -45,7 +44,8 @@ mod rules; mod slice; mod validity; -vtable!(FoR, FoR, FoRData); +/// A [`FoR`]-encoded Vortex array. +pub type FoRArray = Array; impl ArrayHash for FoRData { fn array_hash(&self, state: &mut H, _precision: Precision) { diff --git a/encodings/fastlanes/src/rle/vtable/mod.rs b/encodings/fastlanes/src/rle/vtable/mod.rs index 7b7c64fa8ba..422a5d107a5 100644 --- a/encodings/fastlanes/src/rle/vtable/mod.rs +++ b/encodings/fastlanes/src/rle/vtable/mod.rs @@ -22,7 +22,6 @@ use vortex_array::dtype::DType; use vortex_array::dtype::Nullability; use vortex_array::dtype::PType; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_error::VortexExpect; use vortex_error::VortexResult; @@ -43,7 +42,8 @@ mod operations; mod rules; mod validity; -vtable!(RLE, RLE, RLEData); +/// A [`RLE`]-encoded Vortex array. +pub type RLEArray = Array; #[derive(Clone, prost::Message)] pub struct RLEMetadata { diff --git a/encodings/fsst/src/array.rs b/encodings/fsst/src/array.rs index ee59d79a8a5..9d5ab72c22a 100644 --- a/encodings/fsst/src/array.rs +++ b/encodings/fsst/src/array.rs @@ -35,7 +35,6 @@ use vortex_array::dtype::Nullability; use vortex_array::dtype::PType; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; use vortex_array::vtable::child_to_validity; @@ -55,7 +54,8 @@ use crate::canonical::fsst_decode_views; use crate::kernel::PARENT_KERNELS; use crate::rules::RULES; -vtable!(FSST, FSST, FSSTData); +/// A [`FSST`]-encoded Vortex array. +pub type FSSTArray = Array; #[derive(Clone, prost::Message)] pub struct FSSTMetadata { diff --git a/encodings/parquet-variant/src/vtable.rs b/encodings/parquet-variant/src/vtable.rs index bc89d9337c8..20e326e6f20 100644 --- a/encodings/parquet-variant/src/vtable.rs +++ b/encodings/parquet-variant/src/vtable.rs @@ -21,7 +21,6 @@ use vortex_array::dtype::DType; use vortex_array::dtype::Nullability; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::child_to_validity; use vortex_array::vtable::validity_to_child; @@ -63,7 +62,8 @@ struct ParquetVariantMetadataProto { pub value_nullable: bool, } -vtable!(ParquetVariant, ParquetVariant, ParquetVariantData); +/// A [`ParquetVariant`]-encoded Vortex array. +pub type ParquetVariantArray = Array; impl VTable for ParquetVariant { type ArrayData = ParquetVariantData; diff --git a/encodings/pco/src/array.rs b/encodings/pco/src/array.rs index 66209a16edd..c96fb3143be 100644 --- a/encodings/pco/src/array.rs +++ b/encodings/pco/src/array.rs @@ -39,7 +39,6 @@ use vortex_array::dtype::half; use vortex_array::scalar::Scalar; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; @@ -79,7 +78,8 @@ use crate::PcoPageInfo; const VALUES_PER_CHUNK: usize = pco::DEFAULT_MAX_PAGE_N; -vtable!(Pco, Pco, PcoData); +/// A [`Pco`]-encoded Vortex array. +pub type PcoArray = Array; impl ArrayHash for PcoData { fn array_hash(&self, state: &mut H, precision: Precision) { diff --git a/encodings/runend/src/array.rs b/encodings/runend/src/array.rs index 8705281cab6..4c595d98e17 100644 --- a/encodings/runend/src/array.rs +++ b/encodings/runend/src/array.rs @@ -29,7 +29,6 @@ use vortex_array::search_sorted::SearchSorted; use vortex_array::search_sorted::SearchSortedSide; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; use vortex_error::VortexExpect as _; @@ -46,7 +45,8 @@ use crate::decompress_bool::runend_decode_bools; use crate::kernel::PARENT_KERNELS; use crate::rules::RULES; -vtable!(RunEnd, RunEnd, RunEndData); +/// A [`RunEnd`]-encoded Vortex array. +pub type RunEndArray = Array; #[derive(Clone, prost::Message)] pub struct RunEndMetadata { diff --git a/encodings/sequence/src/array.rs b/encodings/sequence/src/array.rs index d4b1409deac..6ff2af52319 100644 --- a/encodings/sequence/src/array.rs +++ b/encodings/sequence/src/array.rs @@ -33,7 +33,6 @@ use vortex_array::scalar::ScalarValue; use vortex_array::serde::ArrayChildren; use vortex_array::stats::StatsSet; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; @@ -49,7 +48,8 @@ use crate::compress::sequence_decompress; use crate::kernel::PARENT_KERNELS; use crate::rules::RULES; -vtable!(Sequence, Sequence, SequenceData); +/// A [`Sequence`]-encoded Vortex array. +pub type SequenceArray = Array; #[derive(Clone, prost::Message)] pub struct SequenceMetadata { diff --git a/encodings/sparse/src/lib.rs b/encodings/sparse/src/lib.rs index fc42bfafb4c..1168611315c 100644 --- a/encodings/sparse/src/lib.rs +++ b/encodings/sparse/src/lib.rs @@ -32,7 +32,6 @@ use vortex_array::scalar::ScalarValue; use vortex_array::scalar_fn::fns::operators::Operator; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; use vortex_buffer::Buffer; @@ -57,7 +56,8 @@ mod ops; mod rules; mod slice; -vtable!(Sparse, Sparse, SparseData); +/// A [`Sparse`]-encoded Vortex array. +pub type SparseArray = Array; #[derive(Clone, prost::Message)] #[repr(C)] diff --git a/encodings/zigzag/src/array.rs b/encodings/zigzag/src/array.rs index 1f1fff3559a..1ed12b84436 100644 --- a/encodings/zigzag/src/array.rs +++ b/encodings/zigzag/src/array.rs @@ -21,7 +21,6 @@ use vortex_array::dtype::PType; use vortex_array::match_each_unsigned_integer_ptype; use vortex_array::scalar::Scalar; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; @@ -39,7 +38,8 @@ use crate::kernel::PARENT_KERNELS; use crate::rules::RULES; use crate::zigzag_decode; -vtable!(ZigZag, ZigZag, ZigZagData); +/// A [`ZigZag`]-encoded Vortex array. +pub type ZigZagArray = Array; impl VTable for ZigZag { type ArrayData = ZigZagData; diff --git a/encodings/zstd/src/array.rs b/encodings/zstd/src/array.rs index 4ed08ccad1d..5ab3e09aa3d 100644 --- a/encodings/zstd/src/array.rs +++ b/encodings/zstd/src/array.rs @@ -34,7 +34,6 @@ use vortex_array::dtype::DType; use vortex_array::scalar::Scalar; use vortex_array::serde::ArrayChildren; use vortex_array::validity::Validity; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; @@ -80,7 +79,8 @@ type ViewLen = u32; // We then insert these values to the correct position using a primitive array // constructor. -vtable!(Zstd, Zstd, ZstdData); +/// A [`Zstd`]-encoded Vortex array. +pub type ZstdArray = Array; impl ArrayHash for ZstdData { fn array_hash(&self, state: &mut H, precision: Precision) { diff --git a/encodings/zstd/src/zstd_buffers.rs b/encodings/zstd/src/zstd_buffers.rs index cf7acd8f1b0..a52abbe7ea4 100644 --- a/encodings/zstd/src/zstd_buffers.rs +++ b/encodings/zstd/src/zstd_buffers.rs @@ -22,7 +22,6 @@ use vortex_array::dtype::DType; use vortex_array::scalar::Scalar; use vortex_array::serde::ArrayChildren; use vortex_array::session::ArraySessionExt; -use vortex_array::vtable; use vortex_array::vtable::OperationsVTable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityVTable; @@ -36,7 +35,8 @@ use vortex_session::VortexSession; use crate::ZstdBuffersMetadata; -vtable!(ZstdBuffers, ZstdBuffers, ZstdBuffersData); +/// A [`ZstdBuffers`]-encoded Vortex array. +pub type ZstdBuffersArray = Array; #[derive(Clone, Debug)] pub struct ZstdBuffers; diff --git a/vortex-array/src/array/vtable/mod.rs b/vortex-array/src/array/vtable/mod.rs index 65b10f0881b..1781c7edce3 100644 --- a/vortex-array/src/array/vtable/mod.rs +++ b/vortex-array/src/array/vtable/mod.rs @@ -291,13 +291,11 @@ pub fn patches_child_name(idx: usize) -> &'static str { } } -/// vtable! macro — generates IntoArray, From, and type alias for array types. +/// vtable! macro — adds a deprecated `to_array()` helper on legacy array types. /// -/// Three forms: -/// - `vtable!(Foo)` — short for `vtable!(Foo, Foo)` (legacy form) -/// - `vtable!(Foo, FooVT)` — legacy form where `FooArray` is the inner struct name -/// - `vtable!(Foo, FooVT, FooData)` — new form where `FooData` is the inner struct, -/// and `FooArray` is generated as a type alias for `Array` +/// Two forms: +/// - `vtable!(Foo)` — short for `vtable!(Foo, Foo)` +/// - `vtable!(Foo, FooVT)` — where `FooArray` is the inner struct name #[macro_export] macro_rules! vtable { ($V:ident) => { @@ -318,11 +316,4 @@ macro_rules! vtable { } } }; - // New form: Data is the inner struct, FooArray is a type alias for Array. - ($Base:ident, $VT:ident, $Data:ident) => { - $crate::aliases::paste::paste! { - /// Type alias: `FooArray = Array`. - pub type [<$Base Array>] = $crate::Array<$VT>; - } - }; } diff --git a/vortex-array/src/arrays/bool/vtable/mod.rs b/vortex-array/src/arrays/bool/vtable/mod.rs index b722022071c..96b978a6ff5 100644 --- a/vortex-array/src/arrays/bool/vtable/mod.rs +++ b/vortex-array/src/arrays/bool/vtable/mod.rs @@ -26,7 +26,6 @@ use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod canonical; mod kernel; mod operations; @@ -38,7 +37,8 @@ use crate::arrays::bool::compute::rules::RULES; use crate::hash::ArrayEq; use crate::hash::ArrayHash; -vtable!(Bool, Bool, BoolData); +/// A [`Bool`]-encoded Vortex array. +pub type BoolArray = Array; #[derive(prost::Message)] pub struct BoolMetadata { diff --git a/vortex-array/src/arrays/chunked/vtable/mod.rs b/vortex-array/src/arrays/chunked/vtable/mod.rs index b152311e6bb..23e8b388e32 100644 --- a/vortex-array/src/arrays/chunked/vtable/mod.rs +++ b/vortex-array/src/arrays/chunked/vtable/mod.rs @@ -39,11 +39,11 @@ use crate::dtype::DType; use crate::dtype::Nullability; use crate::dtype::PType; use crate::serde::ArrayChildren; -use crate::vtable; mod canonical; mod operations; mod validity; -vtable!(Chunked, Chunked, ChunkedData); +/// A [`Chunked`]-encoded Vortex array. +pub type ChunkedArray = Array; #[derive(Clone, Debug)] pub struct Chunked; diff --git a/vortex-array/src/arrays/constant/vtable/mod.rs b/vortex-array/src/arrays/constant/vtable/mod.rs index a41972a2557..c462c8651d2 100644 --- a/vortex-array/src/arrays/constant/vtable/mod.rs +++ b/vortex-array/src/arrays/constant/vtable/mod.rs @@ -41,12 +41,12 @@ use crate::scalar::DecimalValue; use crate::scalar::Scalar; use crate::scalar::ScalarValue; use crate::serde::ArrayChildren; -use crate::vtable; pub(crate) mod canonical; mod operations; mod validity; -vtable!(Constant, Constant, ConstantData); +/// A [`Constant`]-encoded Vortex array. +pub type ConstantArray = Array; #[derive(Clone, Debug)] pub struct Constant; diff --git a/vortex-array/src/arrays/decimal/vtable/mod.rs b/vortex-array/src/arrays/decimal/vtable/mod.rs index 789c312179a..ff4070bdff3 100644 --- a/vortex-array/src/arrays/decimal/vtable/mod.rs +++ b/vortex-array/src/arrays/decimal/vtable/mod.rs @@ -26,7 +26,6 @@ use crate::dtype::NativeDecimalType; use crate::match_each_decimal_value_type; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod kernel; mod operations; mod validity; @@ -39,7 +38,8 @@ use crate::arrays::decimal::array::SLOT_NAMES; use crate::arrays::decimal::compute::rules::RULES; use crate::hash::ArrayEq; use crate::hash::ArrayHash; -vtable!(Decimal, Decimal, DecimalData); +/// A [`Decimal`]-encoded Vortex array. +pub type DecimalArray = Array; // The type of the values can be determined by looking at the type info...right? #[derive(prost::Message)] diff --git a/vortex-array/src/arrays/dict/vtable/mod.rs b/vortex-array/src/arrays/dict/vtable/mod.rs index 6f17c5c157a..e3192d3040e 100644 --- a/vortex-array/src/arrays/dict/vtable/mod.rs +++ b/vortex-array/src/arrays/dict/vtable/mod.rs @@ -42,12 +42,12 @@ use crate::executor::ExecutionResult; use crate::require_child; use crate::scalar::Scalar; use crate::serde::ArrayChildren; -use crate::vtable; mod kernel; mod operations; mod validity; -vtable!(Dict, Dict, DictData); +/// A [`Dict`]-encoded Vortex array. +pub type DictArray = Array; #[derive(Clone, Debug)] pub struct Dict; diff --git a/vortex-array/src/arrays/extension/vtable/mod.rs b/vortex-array/src/arrays/extension/vtable/mod.rs index fc48542c4c9..91cbe67ffe9 100644 --- a/vortex-array/src/arrays/extension/vtable/mod.rs +++ b/vortex-array/src/arrays/extension/vtable/mod.rs @@ -33,9 +33,9 @@ use crate::arrays::extension::compute::rules::PARENT_RULES; use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; -use crate::vtable; -vtable!(Extension, Extension, ExtensionData); +/// A [`Extension`]-encoded Vortex array. +pub type ExtensionArray = Array; impl ArrayHash for ExtensionData { fn array_hash(&self, _state: &mut H, _precision: Precision) {} diff --git a/vortex-array/src/arrays/filter/vtable.rs b/vortex-array/src/arrays/filter/vtable.rs index 75258f542e5..7490bcd8b41 100644 --- a/vortex-array/src/arrays/filter/vtable.rs +++ b/vortex-array/src/arrays/filter/vtable.rs @@ -37,9 +37,9 @@ use crate::executor::ExecutionResult; use crate::scalar::Scalar; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; -vtable!(Filter, Filter, FilterData); +/// A [`Filter`]-encoded Vortex array. +pub type FilterArray = Array; #[derive(Clone, Debug)] pub struct Filter; 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 d3af276de02..8936d3bc54d 100644 --- a/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs +++ b/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs @@ -30,12 +30,12 @@ use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod kernel; mod operations; mod validity; -vtable!(FixedSizeList, FixedSizeList, FixedSizeListData); +/// A [`FixedSizeList`]-encoded Vortex array. +pub type FixedSizeListArray = Array; #[derive(Clone, Debug)] pub struct FixedSizeList; diff --git a/vortex-array/src/arrays/list/vtable/mod.rs b/vortex-array/src/arrays/list/vtable/mod.rs index 300ff5c59a2..2e38d848c95 100644 --- a/vortex-array/src/arrays/list/vtable/mod.rs +++ b/vortex-array/src/arrays/list/vtable/mod.rs @@ -36,10 +36,10 @@ use crate::dtype::Nullability; use crate::dtype::PType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod operations; mod validity; -vtable!(List, List, ListData); +/// A [`List`]-encoded Vortex array. +pub type ListArray = Array; #[derive(Clone, prost::Message)] pub struct ListMetadata { diff --git a/vortex-array/src/arrays/listview/vtable/mod.rs b/vortex-array/src/arrays/listview/vtable/mod.rs index 187d3ca125c..b64c56451a3 100644 --- a/vortex-array/src/arrays/listview/vtable/mod.rs +++ b/vortex-array/src/arrays/listview/vtable/mod.rs @@ -34,10 +34,10 @@ use crate::dtype::Nullability; use crate::dtype::PType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod operations; mod validity; -vtable!(ListView, ListView, ListViewData); +/// A [`ListView`]-encoded Vortex array. +pub type ListViewArray = Array; #[derive(Clone, Debug)] pub struct ListView; diff --git a/vortex-array/src/arrays/masked/vtable/mod.rs b/vortex-array/src/arrays/masked/vtable/mod.rs index 337ce1b8dc3..45b8a48cb2d 100644 --- a/vortex-array/src/arrays/masked/vtable/mod.rs +++ b/vortex-array/src/arrays/masked/vtable/mod.rs @@ -38,8 +38,8 @@ use crate::executor::ExecutionResult; use crate::scalar::Scalar; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; -vtable!(Masked, Masked, MaskedData); +/// A [`Masked`]-encoded Vortex array. +pub type MaskedArray = Array; #[derive(Clone, Debug)] pub struct Masked; diff --git a/vortex-array/src/arrays/null/mod.rs b/vortex-array/src/arrays/null/mod.rs index e2935a49116..ed00c7a4a93 100644 --- a/vortex-array/src/arrays/null/mod.rs +++ b/vortex-array/src/arrays/null/mod.rs @@ -27,11 +27,11 @@ use crate::dtype::DType; use crate::scalar::Scalar; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; pub(crate) mod compute; -vtable!(Null, Null, NullData); +/// A [`Null`]-encoded Vortex array. +pub type NullArray = Array; impl ArrayHash for NullData { fn array_hash(&self, _state: &mut H, _precision: Precision) { diff --git a/vortex-array/src/arrays/patched/vtable/mod.rs b/vortex-array/src/arrays/patched/vtable/mod.rs index f30094f57fe..5b8f900c7f0 100644 --- a/vortex-array/src/arrays/patched/vtable/mod.rs +++ b/vortex-array/src/arrays/patched/vtable/mod.rs @@ -46,9 +46,9 @@ use crate::dtype::NativePType; use crate::dtype::PType; use crate::match_each_native_ptype; use crate::serde::ArrayChildren; -use crate::vtable; -vtable!(Patched, Patched, PatchedData); +/// A [`Patched`]-encoded Vortex array. +pub type PatchedArray = Array; #[derive(Clone, Debug)] pub struct Patched; diff --git a/vortex-array/src/arrays/primitive/vtable/mod.rs b/vortex-array/src/arrays/primitive/vtable/mod.rs index 180d01e8c35..15532f38383 100644 --- a/vortex-array/src/arrays/primitive/vtable/mod.rs +++ b/vortex-array/src/arrays/primitive/vtable/mod.rs @@ -19,7 +19,6 @@ use crate::dtype::DType; use crate::dtype::PType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod kernel; mod operations; mod validity; @@ -36,7 +35,8 @@ use crate::arrays::primitive::compute::rules::RULES; use crate::hash::ArrayEq; use crate::hash::ArrayHash; -vtable!(Primitive, Primitive, PrimitiveData); +/// A [`Primitive`]-encoded Vortex array. +pub type PrimitiveArray = Array; impl ArrayHash for PrimitiveData { fn array_hash(&self, state: &mut H, precision: Precision) { diff --git a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs index 656d90e8b37..1217a3c84d9 100644 --- a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs +++ b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs @@ -45,9 +45,9 @@ use crate::scalar_fn::ScalarFnRef; use crate::scalar_fn::ScalarFnVTableExt; use crate::scalar_fn::VecExecutionArgs; use crate::serde::ArrayChildren; -use crate::vtable; -vtable!(ScalarFn, ScalarFnVTable, ScalarFnData); +/// A [`ScalarFn`]-encoded Vortex array. +pub type ScalarFnArray = Array; #[derive(Clone, Debug)] pub struct ScalarFnVTable { diff --git a/vortex-array/src/arrays/shared/vtable.rs b/vortex-array/src/arrays/shared/vtable.rs index a368d74226b..d6e1baf485b 100644 --- a/vortex-array/src/arrays/shared/vtable.rs +++ b/vortex-array/src/arrays/shared/vtable.rs @@ -28,9 +28,9 @@ use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::scalar::Scalar; use crate::validity::Validity; -use crate::vtable; -vtable!(Shared, Shared, SharedData); +/// A [`Shared`]-encoded Vortex array. +pub type SharedArray = Array; // TODO(ngates): consider hooking Shared into the iterative execution model. Cache either the // most executed, or after each iteration, and return a shared cache for each execution. diff --git a/vortex-array/src/arrays/slice/vtable.rs b/vortex-array/src/arrays/slice/vtable.rs index b5552cdec3c..72b5f943eb6 100644 --- a/vortex-array/src/arrays/slice/vtable.rs +++ b/vortex-array/src/arrays/slice/vtable.rs @@ -39,9 +39,9 @@ use crate::executor::ExecutionResult; use crate::scalar::Scalar; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; -vtable!(Slice, Slice, SliceData); +/// A [`Slice`]-encoded Vortex array. +pub type SliceArray = Array; #[derive(Clone, Debug)] pub struct Slice; diff --git a/vortex-array/src/arrays/struct_/vtable/mod.rs b/vortex-array/src/arrays/struct_/vtable/mod.rs index 3ac1db7e57c..1ad8bad2097 100644 --- a/vortex-array/src/arrays/struct_/vtable/mod.rs +++ b/vortex-array/src/arrays/struct_/vtable/mod.rs @@ -29,7 +29,6 @@ use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod kernel; mod operations; mod validity; @@ -37,7 +36,8 @@ mod validity; use crate::Precision; use crate::array::ArrayId; -vtable!(Struct, Struct, StructData); +/// A [`Struct`]-encoded Vortex array. +pub type StructArray = Array; impl ArrayHash for StructData { fn array_hash(&self, _state: &mut H, _precision: Precision) {} diff --git a/vortex-array/src/arrays/varbin/vtable/mod.rs b/vortex-array/src/arrays/varbin/vtable/mod.rs index b1fd1410b68..8acb428b0bc 100644 --- a/vortex-array/src/arrays/varbin/vtable/mod.rs +++ b/vortex-array/src/arrays/varbin/vtable/mod.rs @@ -28,7 +28,6 @@ use crate::dtype::Nullability; use crate::dtype::PType; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod canonical; mod kernel; mod operations; @@ -43,7 +42,8 @@ use crate::arrays::varbin::compute::rules::PARENT_RULES; use crate::hash::ArrayEq; use crate::hash::ArrayHash; -vtable!(VarBin, VarBin, VarBinData); +/// A [`VarBin`]-encoded Vortex array. +pub type VarBinArray = Array; #[derive(Clone, prost::Message)] pub struct VarBinMetadata { diff --git a/vortex-array/src/arrays/varbinview/vtable/mod.rs b/vortex-array/src/arrays/varbinview/vtable/mod.rs index 102d7365be5..a867eeb5e62 100644 --- a/vortex-array/src/arrays/varbinview/vtable/mod.rs +++ b/vortex-array/src/arrays/varbinview/vtable/mod.rs @@ -33,11 +33,11 @@ use crate::hash::ArrayEq; use crate::hash::ArrayHash; use crate::serde::ArrayChildren; use crate::validity::Validity; -use crate::vtable; mod kernel; mod operations; mod validity; -vtable!(VarBinView, VarBinView, VarBinViewData); +/// A [`VarBinView`]-encoded Vortex array. +pub type VarBinViewArray = Array; #[derive(Clone, Debug)] pub struct VarBinView; diff --git a/vortex-array/src/arrays/variant/vtable/mod.rs b/vortex-array/src/arrays/variant/vtable/mod.rs index a38629399de..bd00afd027e 100644 --- a/vortex-array/src/arrays/variant/vtable/mod.rs +++ b/vortex-array/src/arrays/variant/vtable/mod.rs @@ -26,9 +26,9 @@ use crate::arrays::variant::VariantData; use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::serde::ArrayChildren; -use crate::vtable; -vtable!(Variant, Variant, VariantData); +/// A [`Variant`]-encoded Vortex array. +pub type VariantArray = Array; #[derive(Clone, Debug)] pub struct Variant; diff --git a/vortex-tensor/src/encodings/turboquant/vtable.rs b/vortex-tensor/src/encodings/turboquant/vtable.rs index 2476cc36860..66a97697eea 100644 --- a/vortex-tensor/src/encodings/turboquant/vtable.rs +++ b/vortex-tensor/src/encodings/turboquant/vtable.rs @@ -23,7 +23,6 @@ use vortex_array::dtype::DType; use vortex_array::dtype::Nullability; use vortex_array::dtype::PType; use vortex_array::serde::ArrayChildren; -use vortex_array::vtable; use vortex_array::vtable::VTable; use vortex_array::vtable::ValidityChild; use vortex_array::vtable::ValidityVTableFromChild; @@ -106,7 +105,8 @@ impl TurboQuant { } } -vtable!(TurboQuant, TurboQuant, TurboQuantData); +/// A [`TurboQuant`]-encoded Vortex array. +pub type TurboQuantArray = Array; impl ArrayHash for TurboQuantData { fn array_hash(&self, state: &mut H, _precision: Precision) { From c72af11665c544b976f618d9021088aa74fb6ab4 Mon Sep 17 00:00:00 2001 From: Joe Isaacs Date: Tue, 7 Apr 2026 16:02:01 +0100 Subject: [PATCH 2/4] remove old vtable! macro Signed-off-by: Joe Isaacs --- vortex-array/src/array/vtable/mod.rs | 26 -------------------------- vortex-python/src/arrays/py/vtable.rs | 3 --- 2 files changed, 29 deletions(-) diff --git a/vortex-array/src/array/vtable/mod.rs b/vortex-array/src/array/vtable/mod.rs index 1781c7edce3..a15ed07bfeb 100644 --- a/vortex-array/src/array/vtable/mod.rs +++ b/vortex-array/src/array/vtable/mod.rs @@ -291,29 +291,3 @@ pub fn patches_child_name(idx: usize) -> &'static str { } } -/// vtable! macro — adds a deprecated `to_array()` helper on legacy array types. -/// -/// Two forms: -/// - `vtable!(Foo)` — short for `vtable!(Foo, Foo)` -/// - `vtable!(Foo, FooVT)` — where `FooArray` is the inner struct name -#[macro_export] -macro_rules! vtable { - ($V:ident) => { - $crate::vtable!($V, $V); - }; - // Legacy form: FooArray is the inner struct name, no type alias generated. - ($Base:ident, $VT:ident) => { - $crate::aliases::paste::paste! { - impl [<$Base Array>] { - #[deprecated(note = "use `.into_array()` (owned) or `.clone().into_array()` (ref) to make clones explicit")] - pub fn to_array(&self) -> $crate::ArrayRef - where - Self: Clone + $crate::IntoArray, - { - use $crate::IntoArray; - self.clone().into_array() - } - } - } - }; -} diff --git a/vortex-python/src/arrays/py/vtable.rs b/vortex-python/src/arrays/py/vtable.rs index e98135cff97..106cce62358 100644 --- a/vortex-python/src/arrays/py/vtable.rs +++ b/vortex-python/src/arrays/py/vtable.rs @@ -19,7 +19,6 @@ use vortex::array::VTable; use vortex::array::ValidityVTable; use vortex::array::buffer::BufferHandle; use vortex::array::validity::Validity; -use vortex::array::vtable; use vortex::dtype::DType; use vortex::error::VortexResult; use vortex::error::vortex_bail; @@ -30,8 +29,6 @@ use vortex::session::VortexSession; use crate::arrays::py::PythonArray; -vtable!(Python, PythonVTable); - /// Wrapper struct encapsulating a Python encoding. #[derive(Debug, Clone)] pub struct PythonVTable { From 8ec4ce056dd1d2045053f404f545a2b8d0d6cb89 Mon Sep 17 00:00:00 2001 From: Joe Isaacs Date: Tue, 7 Apr 2026 16:11:48 +0100 Subject: [PATCH 3/4] remove old vtable! macro Signed-off-by: Joe Isaacs --- vortex-array/public-api.lock | 2 -- vortex-array/src/array/vtable/mod.rs | 1 - 2 files changed, 3 deletions(-) diff --git a/vortex-array/public-api.lock b/vortex-array/public-api.lock index 84b3fb9513d..ce9321e9210 100644 --- a/vortex-array/public-api.lock +++ b/vortex-array/public-api.lock @@ -20948,8 +20948,6 @@ pub macro vortex_array::require_patches! pub macro vortex_array::require_validity! -pub macro vortex_array::vtable! - pub enum vortex_array::Canonical pub vortex_array::Canonical::Bool(vortex_array::arrays::BoolArray) diff --git a/vortex-array/src/array/vtable/mod.rs b/vortex-array/src/array/vtable/mod.rs index a15ed07bfeb..4a12e80fa99 100644 --- a/vortex-array/src/array/vtable/mod.rs +++ b/vortex-array/src/array/vtable/mod.rs @@ -290,4 +290,3 @@ pub fn patches_child_name(idx: usize) -> &'static str { _ => vortex_panic!("patches child name index {idx} out of bounds"), } } - From 8ed8666a7dc451738ebb5065e721f61180f809eb Mon Sep 17 00:00:00 2001 From: Joe Isaacs Date: Tue, 7 Apr 2026 16:37:49 +0100 Subject: [PATCH 4/4] fix: broken doc link for ScalarFnArray Signed-off-by: Joe Isaacs Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Joe Isaacs --- vortex-array/src/arrays/scalar_fn/vtable/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs index 1217a3c84d9..40dfd22003e 100644 --- a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs +++ b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs @@ -46,7 +46,7 @@ use crate::scalar_fn::ScalarFnVTableExt; use crate::scalar_fn::VecExecutionArgs; use crate::serde::ArrayChildren; -/// A [`ScalarFn`]-encoded Vortex array. +/// A [`ScalarFnVTable`]-encoded Vortex array. pub type ScalarFnArray = Array; #[derive(Clone, Debug)]