diff --git a/.github/runs-on.yml b/.github/runs-on.yml index b1bfde5c961..6a904a6a10d 100644 --- a/.github/runs-on.yml +++ b/.github/runs-on.yml @@ -1 +1,6 @@ _extends: .github-private +images: + ubuntu24-full-arm64-pre: + platform: "linux" + arch: "arm64" + ami: "ami-08f97c6362847dc5d" diff --git a/vortex-array/benches/chunked_dict_builder.rs b/vortex-array/benches/chunked_dict_builder.rs index b42514fcf19..2eb5d802a36 100644 --- a/vortex-array/benches/chunked_dict_builder.rs +++ b/vortex-array/benches/chunked_dict_builder.rs @@ -31,24 +31,6 @@ const BENCH_ARGS: &[(usize, usize, usize)] = &[ (1000, 1000, 100), ]; -#[divan::bench(types = [u32, u64, f32, f64], args = BENCH_ARGS)] -fn chunked_dict_primitive_canonical_into( - bencher: Bencher, - (len, unique_values, chunk_count): (usize, usize, usize), -) where - StandardUniform: Distribution, -{ - let chunk = gen_dict_primitive_chunks::(len, unique_values, chunk_count); - - bencher.with_inputs(|| &chunk).bench_refs(|chunk| { - let mut builder = builder_with_capacity(chunk.dtype(), len * chunk_count); - chunk - .append_to_builder(builder.as_mut(), &mut SESSION.create_execution_ctx()) - .vortex_expect("append failed"); - builder.finish() - }) -} - #[divan::bench(types = [u32, u64, f32, f64], args = BENCH_ARGS)] fn chunked_dict_primitive_into_canonical( bencher: Bencher, @@ -56,9 +38,12 @@ fn chunked_dict_primitive_into_canonical( ) where StandardUniform: Distribution, { - let chunk = gen_dict_primitive_chunks::(len, unique_values, chunk_count); - bencher - .with_inputs(|| chunk.clone()) - .bench_values(|chunk| chunk.execute::(&mut SESSION.create_execution_ctx())) + .with_inputs(|| { + ( + gen_dict_primitive_chunks::(len, unique_values, chunk_count), + SESSION.create_execution_ctx(), + ) + }) + .bench_values(|(chunk, mut ctx)| (chunk.execute::(&mut ctx), ctx)) } diff --git a/vortex-array/public-api.lock b/vortex-array/public-api.lock index 55698904758..2012ed15522 100644 --- a/vortex-array/public-api.lock +++ b/vortex-array/public-api.lock @@ -1156,6 +1156,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1182,6 +1184,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Bool @@ -1332,6 +1336,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1358,6 +1364,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Chunked @@ -1498,6 +1506,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1524,6 +1534,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Constant @@ -1680,6 +1692,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1706,6 +1720,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Decimal @@ -1898,6 +1914,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -1924,6 +1942,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::dict::Dict @@ -1996,6 +2016,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2022,6 +2044,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::dict::Dict @@ -2282,6 +2306,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2308,6 +2334,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityChild for vortex_array::arrays::Extension @@ -2410,6 +2438,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2436,6 +2466,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Filter @@ -2600,6 +2632,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2626,6 +2660,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::FixedSizeList @@ -2746,6 +2782,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2772,6 +2810,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::List @@ -2928,6 +2968,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -2954,6 +2996,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::ListView @@ -3110,6 +3154,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3136,6 +3182,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Masked @@ -3238,6 +3286,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3264,6 +3314,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::ValidityVTable for vortex_array::arrays::null::Null @@ -3352,13 +3404,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -3378,6 +3432,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityChild for vortex_array::arrays::patched::Patched @@ -3576,6 +3632,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3602,6 +3660,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Primitive @@ -3776,6 +3836,8 @@ impl vortex_array::matcher::Matcher for vortex_array::arrays::scalar_fn::AnyScal pub type vortex_array::arrays::scalar_fn::AnyScalarFn::Match<'a> = vortex_array::ArrayView<'a, vortex_array::arrays::scalar_fn::ScalarFnVTable> +pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::dispatch_hint() -> core::option::Option + pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::try_match(array: &vortex_array::ArrayRef) -> core::option::Option @@ -3794,6 +3856,8 @@ impl vortex_array::matcher::Matcher pub type vortex_array::arrays::scalar_fn::ExactScalarFn::Match<'a> = vortex_array::arrays::scalar_fn::ScalarFnArrayView<'a, F> +pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::dispatch_hint() -> core::option::Option + pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::try_match(array: &vortex_array::ArrayRef) -> core::option::Option @@ -3862,6 +3926,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -3888,6 +3954,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -3978,6 +4046,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4004,6 +4074,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Shared @@ -4092,6 +4164,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4118,6 +4192,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::slice::Slice @@ -4320,6 +4396,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4346,6 +4424,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Struct @@ -4508,6 +4588,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4534,6 +4616,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::VarBin @@ -4876,6 +4960,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -4902,6 +4988,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::VarBinView @@ -5064,6 +5152,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5090,6 +5180,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Variant @@ -5156,6 +5248,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5182,6 +5276,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Bool @@ -5250,6 +5346,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5276,6 +5374,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Chunked @@ -5346,6 +5446,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5372,6 +5474,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Constant @@ -5438,6 +5542,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5464,6 +5570,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Decimal @@ -5532,6 +5640,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5558,6 +5668,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::dict::Dict @@ -5628,6 +5740,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5654,6 +5768,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityChild for vortex_array::arrays::Extension @@ -5716,6 +5832,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5742,6 +5860,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Filter @@ -5780,6 +5900,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5806,6 +5928,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::FixedSizeList @@ -5860,6 +5984,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5886,6 +6012,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::List @@ -5944,6 +6072,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -5970,6 +6100,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::ListView @@ -6024,6 +6156,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6050,6 +6184,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Masked @@ -6108,6 +6244,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6134,6 +6272,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::ValidityVTable for vortex_array::arrays::null::Null @@ -6192,13 +6332,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -6218,6 +6360,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityChild for vortex_array::arrays::patched::Patched @@ -6272,6 +6416,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6298,6 +6444,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Primitive @@ -6362,6 +6510,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6388,6 +6538,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -6426,6 +6578,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6452,6 +6606,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Shared @@ -6490,6 +6646,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6516,6 +6674,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::slice::Slice @@ -6558,6 +6718,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6584,6 +6746,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Struct @@ -6646,6 +6810,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6672,6 +6838,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::VarBin @@ -6734,6 +6902,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6760,6 +6930,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::VarBinView @@ -6818,6 +6990,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -6844,6 +7018,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::ValidityVTable for vortex_array::arrays::Variant @@ -13084,6 +13260,8 @@ pub fn vortex_array::kernel::ParentKernelAdapter::fmt(&self, f: &mut core: impl> vortex_array::kernel::DynParentKernel for vortex_array::kernel::ParentKernelAdapter +pub fn vortex_array::kernel::ParentKernelAdapter::dispatch_hint(&self) -> core::option::Option + pub fn vortex_array::kernel::ParentKernelAdapter::execute_parent(&self, child: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> pub fn vortex_array::kernel::ParentKernelAdapter::matches(&self, parent: &vortex_array::ArrayRef) -> bool @@ -13098,7 +13276,9 @@ pub const fn vortex_array::kernel::ParentKernelSet::lift::new(kernels: &'static [&'static dyn vortex_array::kernel::DynParentKernel]) -> Self -pub trait vortex_array::kernel::DynParentKernel: core::marker::Send + core::marker::Sync +pub trait vortex_array::kernel::DynParentKernel: core::fmt::Debug + core::marker::Send + core::marker::Sync + +pub fn vortex_array::kernel::DynParentKernel::dispatch_hint(&self) -> core::option::Option pub fn vortex_array::kernel::DynParentKernel::execute_parent(&self, child: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> @@ -13106,6 +13286,8 @@ pub fn vortex_array::kernel::DynParentKernel::matches(&self, parent: &vortex_arr impl> vortex_array::kernel::DynParentKernel for vortex_array::kernel::ParentKernelAdapter +pub fn vortex_array::kernel::ParentKernelAdapter::dispatch_hint(&self) -> core::option::Option + pub fn vortex_array::kernel::ParentKernelAdapter::execute_parent(&self, child: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> pub fn vortex_array::kernel::ParentKernelAdapter::matches(&self, parent: &vortex_array::ArrayRef) -> bool @@ -13192,6 +13374,34 @@ pub mod vortex_array::mask pub mod vortex_array::matcher +pub enum vortex_array::matcher::MatcherHint + +pub vortex_array::matcher::MatcherHint::Category(u32) + +pub vortex_array::matcher::MatcherHint::Exact(u32) + +impl core::clone::Clone for vortex_array::matcher::MatcherHint + +pub fn vortex_array::matcher::MatcherHint::clone(&self) -> vortex_array::matcher::MatcherHint + +impl core::cmp::Eq for vortex_array::matcher::MatcherHint + +impl core::cmp::PartialEq for vortex_array::matcher::MatcherHint + +pub fn vortex_array::matcher::MatcherHint::eq(&self, other: &vortex_array::matcher::MatcherHint) -> bool + +impl core::fmt::Debug for vortex_array::matcher::MatcherHint + +pub fn vortex_array::matcher::MatcherHint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result + +impl core::hash::Hash for vortex_array::matcher::MatcherHint + +pub fn vortex_array::matcher::MatcherHint::hash<__H: core::hash::Hasher>(&self, state: &mut __H) + +impl core::marker::Copy for vortex_array::matcher::MatcherHint + +impl core::marker::StructuralPartialEq for vortex_array::matcher::MatcherHint + pub struct vortex_array::matcher::AnyArray impl core::fmt::Debug for vortex_array::matcher::AnyArray @@ -13202,14 +13412,24 @@ impl vortex_array::matcher::Matcher for vortex_array::matcher::AnyArray pub type vortex_array::matcher::AnyArray::Match<'a> = &'a vortex_array::ArrayRef +pub fn vortex_array::matcher::AnyArray::dispatch_hint() -> core::option::Option + pub fn vortex_array::matcher::AnyArray::matches(_array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::matcher::AnyArray::try_match(array: &vortex_array::ArrayRef) -> core::option::Option +pub const vortex_array::matcher::CATEGORY_CANONICAL: u32 + +pub const vortex_array::matcher::CATEGORY_CONSTANT: u32 + +pub const vortex_array::matcher::CATEGORY_SCALAR_FN: u32 + pub trait vortex_array::matcher::Matcher pub type vortex_array::matcher::Matcher::Match<'a> +pub fn vortex_array::matcher::Matcher::dispatch_hint() -> core::option::Option + pub fn vortex_array::matcher::Matcher::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::matcher::Matcher::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option @@ -13218,6 +13438,8 @@ impl vortex_array::matcher::Matcher for vortex_array::AnyCanonical pub type vortex_array::AnyCanonical::Match<'a> = vortex_array::CanonicalView<'a> +pub fn vortex_array::AnyCanonical::dispatch_hint() -> core::option::Option + pub fn vortex_array::AnyCanonical::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::AnyCanonical::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option @@ -13226,6 +13448,8 @@ impl vortex_array::matcher::Matcher for vortex_array::AnyColumnar pub type vortex_array::AnyColumnar::Match<'a> = vortex_array::ColumnarView<'a> +pub fn vortex_array::AnyColumnar::dispatch_hint() -> core::option::Option + pub fn vortex_array::AnyColumnar::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::AnyColumnar::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option @@ -13234,6 +13458,8 @@ impl vortex_array::matcher::Matcher for vortex_array::arrays::scalar_fn::AnyScal pub type vortex_array::arrays::scalar_fn::AnyScalarFn::Match<'a> = vortex_array::ArrayView<'a, vortex_array::arrays::scalar_fn::ScalarFnVTable> +pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::dispatch_hint() -> core::option::Option + pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::arrays::scalar_fn::AnyScalarFn::try_match(array: &vortex_array::ArrayRef) -> core::option::Option @@ -13242,6 +13468,8 @@ impl vortex_array::matcher::Matcher for vortex_array::matcher::AnyArray pub type vortex_array::matcher::AnyArray::Match<'a> = &'a vortex_array::ArrayRef +pub fn vortex_array::matcher::AnyArray::dispatch_hint() -> core::option::Option + pub fn vortex_array::matcher::AnyArray::matches(_array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::matcher::AnyArray::try_match(array: &vortex_array::ArrayRef) -> core::option::Option @@ -13250,6 +13478,8 @@ impl vortex_array::matcher::Matcher pub type vortex_array::arrays::scalar_fn::ExactScalarFn::Match<'a> = vortex_array::arrays::scalar_fn::ScalarFnArrayView<'a, F> +pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::dispatch_hint() -> core::option::Option + pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::arrays::scalar_fn::ExactScalarFn::try_match(array: &vortex_array::ArrayRef) -> core::option::Option @@ -13258,6 +13488,8 @@ impl vortex_array::matcher::Matcher for V pub type V::Match<'a> = vortex_array::ArrayView<'a, V> +pub fn V::dispatch_hint() -> core::option::Option + pub fn V::matches(array: &vortex_array::ArrayRef) -> bool pub fn V::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option> @@ -13284,6 +13516,8 @@ pub struct vortex_array::optimizer::rules::ParentReduceRuleAdapter impl> vortex_array::optimizer::rules::DynArrayParentReduceRule for vortex_array::optimizer::rules::ParentReduceRuleAdapter +pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::dispatch_hint(&self) -> core::option::Option + pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::matches(&self, parent: &vortex_array::ArrayRef) -> bool pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::reduce_parent(&self, child: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> @@ -13406,12 +13640,16 @@ pub fn vortex_array::optimizer::rules::ArrayReduceRule::reduce(&self, array: vor pub trait vortex_array::optimizer::rules::DynArrayParentReduceRule: core::fmt::Debug + core::marker::Send + core::marker::Sync +pub fn vortex_array::optimizer::rules::DynArrayParentReduceRule::dispatch_hint(&self) -> core::option::Option + pub fn vortex_array::optimizer::rules::DynArrayParentReduceRule::matches(&self, parent: &vortex_array::ArrayRef) -> bool pub fn vortex_array::optimizer::rules::DynArrayParentReduceRule::reduce_parent(&self, array: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> impl> vortex_array::optimizer::rules::DynArrayParentReduceRule for vortex_array::optimizer::rules::ParentReduceRuleAdapter +pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::dispatch_hint(&self) -> core::option::Option + pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::matches(&self, parent: &vortex_array::ArrayRef) -> bool pub fn vortex_array::optimizer::rules::ParentReduceRuleAdapter::reduce_parent(&self, child: vortex_array::ArrayView<'_, V>, parent: &vortex_array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult> @@ -15534,6 +15772,8 @@ pub fn vortex_array::scalar_fn::fns::between::Between::stat_expression(&self, op pub fn vortex_array::scalar_fn::fns::between::Between::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::between::Between::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::between::Between::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::between::BetweenExecuteAdaptor(pub V) @@ -15662,6 +15902,8 @@ pub fn vortex_array::scalar_fn::fns::binary::Binary::stat_expression(&self, opti pub fn vortex_array::scalar_fn::fns::binary::Binary::stat_falsification(&self, operator: &vortex_array::scalar_fn::fns::operators::Operator, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::binary::Binary::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::binary::Binary::validity(&self, operator: &vortex_array::scalar_fn::fns::operators::Operator, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::binary::CompareExecuteAdaptor(pub V) @@ -15752,6 +15994,8 @@ pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::stat_expression(&self, pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::case_when::CaseWhenOptions @@ -15834,6 +16078,8 @@ pub fn vortex_array::scalar_fn::fns::cast::Cast::stat_expression(&self, dtype: & pub fn vortex_array::scalar_fn::fns::cast::Cast::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::cast::Cast::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::cast::Cast::validity(&self, dtype: &vortex_array::dtype::DType, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::cast::CastExecuteAdaptor(pub V) @@ -15976,6 +16222,8 @@ pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::stat_expression pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::stat_falsification(&self, dynamic: &vortex_array::scalar_fn::fns::dynamic::DynamicComparisonExpr, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::dynamic::DynamicComparisonExpr @@ -16058,6 +16306,8 @@ pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::stat_expression(&self, pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::fill_null::FillNullExecuteAdaptor(pub V) @@ -16168,6 +16418,8 @@ pub fn vortex_array::scalar_fn::fns::get_item::GetItem::stat_expression(&self, f pub fn vortex_array::scalar_fn::fns::get_item::GetItem::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::get_item::GetItem::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::get_item::GetItem::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::is_null @@ -16214,6 +16466,8 @@ pub fn vortex_array::scalar_fn::fns::is_null::IsNull::stat_expression(&self, opt pub fn vortex_array::scalar_fn::fns::is_null::IsNull::stat_falsification(&self, _options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::is_null::IsNull::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::is_null::IsNull::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::like @@ -16260,6 +16514,8 @@ pub fn vortex_array::scalar_fn::fns::like::Like::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::like::Like::stat_falsification(&self, like_opts: &vortex_array::scalar_fn::fns::like::LikeOptions, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::like::Like::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::like::Like::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::like::LikeExecuteAdaptor(pub V) @@ -16386,6 +16642,8 @@ pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::stat_expressio pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::stat_falsification(&self, _options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::list_contains::ListContainsElementExecuteAdaptor(pub V) @@ -16472,6 +16730,8 @@ pub fn vortex_array::scalar_fn::fns::literal::Literal::stat_expression(&self, sc pub fn vortex_array::scalar_fn::fns::literal::Literal::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::literal::Literal::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::literal::Literal::validity(&self, scalar: &vortex_array::scalar::Scalar, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::mask @@ -16518,6 +16778,8 @@ pub fn vortex_array::scalar_fn::fns::mask::Mask::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::mask::Mask::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::mask::Mask::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::mask::Mask::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::mask::MaskExecuteAdaptor(pub V) @@ -16696,6 +16958,8 @@ pub fn vortex_array::scalar_fn::fns::merge::Merge::stat_expression(&self, option pub fn vortex_array::scalar_fn::fns::merge::Merge::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::merge::Merge::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::merge::Merge::validity(&self, _options: &Self::Options, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::not @@ -16742,6 +17006,8 @@ pub fn vortex_array::scalar_fn::fns::not::Not::stat_expression(&self, options: & pub fn vortex_array::scalar_fn::fns::not::Not::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::not::Not::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::not::Not::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::not::NotExecuteAdaptor(pub V) @@ -16994,6 +17260,8 @@ pub fn vortex_array::scalar_fn::fns::pack::Pack::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::pack::Pack::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::pack::Pack::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::pack::Pack::validity(&self, _options: &Self::Options, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::pack::PackOptions @@ -17070,6 +17338,8 @@ pub fn vortex_array::scalar_fn::fns::root::Root::stat_expression(&self, _options pub fn vortex_array::scalar_fn::fns::root::Root::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::root::Root::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::root::Root::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::select @@ -17160,6 +17430,8 @@ pub fn vortex_array::scalar_fn::fns::select::Select::stat_expression(&self, opti pub fn vortex_array::scalar_fn::fns::select::Select::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::select::Select::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::select::Select::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub mod vortex_array::scalar_fn::fns::zip @@ -17206,6 +17478,8 @@ pub fn vortex_array::scalar_fn::fns::zip::Zip::stat_expression(&self, options: & pub fn vortex_array::scalar_fn::fns::zip::Zip::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::zip::Zip::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::zip::Zip::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub struct vortex_array::scalar_fn::fns::zip::ZipExecuteAdaptor(pub V) @@ -17562,6 +17836,8 @@ pub fn vortex_array::scalar_fn::ScalarFnVTable::stat_expression(&self, options: pub fn vortex_array::scalar_fn::ScalarFnVTable::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::ScalarFnVTable::static_id() -> vortex_array::scalar_fn::ScalarFnId where Self: core::marker::Sized + pub fn vortex_array::scalar_fn::ScalarFnVTable::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::between::Between @@ -17600,6 +17876,8 @@ pub fn vortex_array::scalar_fn::fns::between::Between::stat_expression(&self, op pub fn vortex_array::scalar_fn::fns::between::Between::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::between::Between::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::between::Between::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::binary::Binary @@ -17638,6 +17916,8 @@ pub fn vortex_array::scalar_fn::fns::binary::Binary::stat_expression(&self, opti pub fn vortex_array::scalar_fn::fns::binary::Binary::stat_falsification(&self, operator: &vortex_array::scalar_fn::fns::operators::Operator, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::binary::Binary::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::binary::Binary::validity(&self, operator: &vortex_array::scalar_fn::fns::operators::Operator, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::case_when::CaseWhen @@ -17676,6 +17956,8 @@ pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::stat_expression(&self, pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::case_when::CaseWhen::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::cast::Cast @@ -17714,6 +17996,8 @@ pub fn vortex_array::scalar_fn::fns::cast::Cast::stat_expression(&self, dtype: & pub fn vortex_array::scalar_fn::fns::cast::Cast::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::cast::Cast::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::cast::Cast::validity(&self, dtype: &vortex_array::dtype::DType, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::dynamic::DynamicComparison @@ -17752,6 +18036,8 @@ pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::stat_expression pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::stat_falsification(&self, dynamic: &vortex_array::scalar_fn::fns::dynamic::DynamicComparisonExpr, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::dynamic::DynamicComparison::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::fill_null::FillNull @@ -17790,6 +18076,8 @@ pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::stat_expression(&self, pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::fill_null::FillNull::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::get_item::GetItem @@ -17828,6 +18116,8 @@ pub fn vortex_array::scalar_fn::fns::get_item::GetItem::stat_expression(&self, f pub fn vortex_array::scalar_fn::fns::get_item::GetItem::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::get_item::GetItem::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::get_item::GetItem::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::is_null::IsNull @@ -17866,6 +18156,8 @@ pub fn vortex_array::scalar_fn::fns::is_null::IsNull::stat_expression(&self, opt pub fn vortex_array::scalar_fn::fns::is_null::IsNull::stat_falsification(&self, _options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::is_null::IsNull::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::is_null::IsNull::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::like::Like @@ -17904,6 +18196,8 @@ pub fn vortex_array::scalar_fn::fns::like::Like::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::like::Like::stat_falsification(&self, like_opts: &vortex_array::scalar_fn::fns::like::LikeOptions, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::like::Like::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::like::Like::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::list_contains::ListContains @@ -17942,6 +18236,8 @@ pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::stat_expressio pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::stat_falsification(&self, _options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::list_contains::ListContains::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::literal::Literal @@ -17980,6 +18276,8 @@ pub fn vortex_array::scalar_fn::fns::literal::Literal::stat_expression(&self, sc pub fn vortex_array::scalar_fn::fns::literal::Literal::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::literal::Literal::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::literal::Literal::validity(&self, scalar: &vortex_array::scalar::Scalar, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::mask::Mask @@ -18018,6 +18316,8 @@ pub fn vortex_array::scalar_fn::fns::mask::Mask::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::mask::Mask::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::mask::Mask::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::mask::Mask::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::merge::Merge @@ -18056,6 +18356,8 @@ pub fn vortex_array::scalar_fn::fns::merge::Merge::stat_expression(&self, option pub fn vortex_array::scalar_fn::fns::merge::Merge::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::merge::Merge::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::merge::Merge::validity(&self, _options: &Self::Options, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::not::Not @@ -18094,6 +18396,8 @@ pub fn vortex_array::scalar_fn::fns::not::Not::stat_expression(&self, options: & pub fn vortex_array::scalar_fn::fns::not::Not::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::not::Not::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::not::Not::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::pack::Pack @@ -18132,6 +18436,8 @@ pub fn vortex_array::scalar_fn::fns::pack::Pack::stat_expression(&self, options: pub fn vortex_array::scalar_fn::fns::pack::Pack::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::pack::Pack::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::pack::Pack::validity(&self, _options: &Self::Options, _expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::root::Root @@ -18170,6 +18476,8 @@ pub fn vortex_array::scalar_fn::fns::root::Root::stat_expression(&self, _options pub fn vortex_array::scalar_fn::fns::root::Root::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::root::Root::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::root::Root::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::select::Select @@ -18208,6 +18516,8 @@ pub fn vortex_array::scalar_fn::fns::select::Select::stat_expression(&self, opti pub fn vortex_array::scalar_fn::fns::select::Select::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::select::Select::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::select::Select::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> impl vortex_array::scalar_fn::ScalarFnVTable for vortex_array::scalar_fn::fns::zip::Zip @@ -18246,6 +18556,8 @@ pub fn vortex_array::scalar_fn::fns::zip::Zip::stat_expression(&self, options: & pub fn vortex_array::scalar_fn::fns::zip::Zip::stat_falsification(&self, options: &Self::Options, expr: &vortex_array::expr::Expression, catalog: &dyn vortex_array::expr::pruning::StatsCatalog) -> core::option::Option +pub fn vortex_array::scalar_fn::fns::zip::Zip::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_array::scalar_fn::fns::zip::Zip::validity(&self, options: &Self::Options, expression: &vortex_array::expr::Expression) -> vortex_error::VortexResult> pub trait vortex_array::scalar_fn::ScalarFnVTableExt: vortex_array::scalar_fn::ScalarFnVTable @@ -19052,6 +19364,8 @@ pub fn vortex_array::vtable::ArrayVTable::buffer(array: vortex_array::ArrayView< pub fn vortex_array::vtable::ArrayVTable::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::vtable::ArrayVTable::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::vtable::ArrayVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::vtable::ArrayVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19078,6 +19392,8 @@ pub fn vortex_array::vtable::ArrayVTable::serialize(array: vortex_array::ArrayVi pub fn vortex_array::vtable::ArrayVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::vtable::ArrayVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::vtable::ArrayVTable::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Bool @@ -19094,6 +19410,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19120,6 +19438,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -19136,6 +19456,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19162,6 +19484,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Constant @@ -19178,6 +19502,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19204,6 +19530,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -19220,6 +19548,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19246,6 +19576,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Extension @@ -19262,6 +19594,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19288,6 +19622,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Filter @@ -19304,6 +19640,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19330,6 +19668,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -19346,6 +19686,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19372,6 +19714,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::List @@ -19388,6 +19732,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19414,6 +19760,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::ListView @@ -19430,6 +19778,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19456,6 +19806,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Masked @@ -19472,6 +19824,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19498,6 +19852,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -19514,6 +19870,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19540,6 +19898,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Shared @@ -19556,6 +19916,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19582,6 +19944,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Struct @@ -19598,6 +19962,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19624,6 +19990,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -19640,6 +20008,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19666,6 +20036,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -19682,6 +20054,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19708,6 +20082,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Variant @@ -19724,6 +20100,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19750,6 +20128,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -19766,6 +20146,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19792,6 +20174,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -19808,6 +20192,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19834,6 +20220,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -19850,13 +20238,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -19876,6 +20266,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -19892,6 +20284,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19918,6 +20312,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -19934,6 +20330,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -19960,6 +20358,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> pub trait vortex_array::vtable::OperationsVTable @@ -20068,6 +20468,8 @@ pub fn vortex_array::vtable::VTable::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::vtable::VTable::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::vtable::VTable::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::vtable::VTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::vtable::VTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20094,6 +20496,8 @@ pub fn vortex_array::vtable::VTable::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::vtable::VTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::vtable::VTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::vtable::VTable::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Bool @@ -20110,6 +20514,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20136,6 +20542,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -20152,6 +20560,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20178,6 +20588,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Constant @@ -20194,6 +20606,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20220,6 +20634,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -20236,6 +20652,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20262,6 +20680,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Extension @@ -20278,6 +20698,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20304,6 +20726,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Filter @@ -20320,6 +20744,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20346,6 +20772,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -20362,6 +20790,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20388,6 +20818,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::List @@ -20404,6 +20836,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20430,6 +20864,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::ListView @@ -20446,6 +20882,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20472,6 +20910,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Masked @@ -20488,6 +20928,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20514,6 +20956,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -20530,6 +20974,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20556,6 +21002,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Shared @@ -20572,6 +21020,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20598,6 +21048,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Struct @@ -20614,6 +21066,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20640,6 +21094,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -20656,6 +21112,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20682,6 +21140,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -20698,6 +21158,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20724,6 +21186,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Variant @@ -20740,6 +21204,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20766,6 +21232,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -20782,6 +21250,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20808,6 +21278,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -20824,6 +21296,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20850,6 +21324,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -20866,13 +21342,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -20892,6 +21370,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -20908,6 +21388,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20934,6 +21416,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -20950,6 +21434,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -20976,6 +21462,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> pub trait vortex_array::vtable::ValidityChild @@ -21328,6 +21816,8 @@ impl vortex_array::matcher::Matcher for vortex_array::AnyCanonical pub type vortex_array::AnyCanonical::Match<'a> = vortex_array::CanonicalView<'a> +pub fn vortex_array::AnyCanonical::dispatch_hint() -> core::option::Option + pub fn vortex_array::AnyCanonical::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::AnyCanonical::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option @@ -21338,6 +21828,8 @@ impl vortex_array::matcher::Matcher for vortex_array::AnyColumnar pub type vortex_array::AnyColumnar::Match<'a> = vortex_array::ColumnarView<'a> +pub fn vortex_array::AnyColumnar::dispatch_hint() -> core::option::Option + pub fn vortex_array::AnyColumnar::matches(array: &vortex_array::ArrayRef) -> bool pub fn vortex_array::AnyColumnar::try_match<'a>(array: &'a vortex_array::ArrayRef) -> core::option::Option @@ -21842,8 +22334,12 @@ pub fn vortex_array::ArrayRef::downcast(self) -> vortex pub fn vortex_array::ArrayRef::dtype(&self) -> &vortex_array::dtype::DType +pub fn vortex_array::ArrayRef::encoding_categories(&self) -> u32 + pub fn vortex_array::ArrayRef::encoding_id(&self) -> vortex_array::ArrayId +pub fn vortex_array::ArrayRef::encoding_idx(&self) -> u32 + pub fn vortex_array::ArrayRef::execute_parent(&self, parent: &vortex_array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult> pub fn vortex_array::ArrayRef::filter(&self, mask: vortex_mask::Mask) -> vortex_error::VortexResult @@ -21914,6 +22410,8 @@ pub fn vortex_array::ArrayRef::validity_mask(&self) -> vortex_error::VortexResul pub fn vortex_array::ArrayRef::with_slot(self, slot_idx: usize, replacement: vortex_array::ArrayRef) -> vortex_error::VortexResult +pub unsafe fn vortex_array::ArrayRef::with_slot_unchecked(self, slot_idx: usize, replacement: vortex_array::ArrayRef) -> vortex_array::ArrayRef + pub fn vortex_array::ArrayRef::with_slots(self, slots: alloc::vec::Vec>) -> vortex_error::VortexResult impl vortex_array::ArrayRef @@ -22772,6 +23270,8 @@ pub fn vortex_array::ArrayVTable::buffer(array: vortex_array::ArrayView<'_, Self pub fn vortex_array::ArrayVTable::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::ArrayVTable::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::ArrayVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::ArrayVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22798,6 +23298,8 @@ pub fn vortex_array::ArrayVTable::serialize(array: vortex_array::ArrayView<'_, S pub fn vortex_array::ArrayVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::ArrayVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::ArrayVTable::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Bool @@ -22814,6 +23316,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22840,6 +23344,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -22856,6 +23362,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22882,6 +23390,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Constant @@ -22898,6 +23408,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22924,6 +23436,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -22940,6 +23454,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -22966,6 +23482,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Extension @@ -22982,6 +23500,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23008,6 +23528,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Filter @@ -23024,6 +23546,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23050,6 +23574,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -23066,6 +23592,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23092,6 +23620,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::List @@ -23108,6 +23638,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23134,6 +23666,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::ListView @@ -23150,6 +23684,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23176,6 +23712,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Masked @@ -23192,6 +23730,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23218,6 +23758,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -23234,6 +23776,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23260,6 +23804,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Shared @@ -23276,6 +23822,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23302,6 +23850,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Struct @@ -23318,6 +23868,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23344,6 +23896,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -23360,6 +23914,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23386,6 +23942,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -23402,6 +23960,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23428,6 +23988,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Variant @@ -23444,6 +24006,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23470,6 +24034,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -23486,6 +24052,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23512,6 +24080,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -23528,6 +24098,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23554,6 +24126,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -23570,13 +24144,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -23596,6 +24172,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -23612,6 +24190,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23638,6 +24218,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -23654,6 +24236,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -23680,6 +24264,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> pub trait vortex_array::DeserializeMetadata where Self: core::marker::Sized @@ -24036,6 +24622,8 @@ pub fn vortex_array::VTable::buffer(array: vortex_array::ArrayView<'_, Self>, id pub fn vortex_array::VTable::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::VTable::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::VTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::VTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24062,6 +24650,8 @@ pub fn vortex_array::VTable::serialize(array: vortex_array::ArrayView<'_, Self>) pub fn vortex_array::VTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::VTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::VTable::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Bool @@ -24078,6 +24668,8 @@ pub fn vortex_array::arrays::Bool::buffer(array: vortex_array::ArrayView<'_, Sel pub fn vortex_array::arrays::Bool::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Bool::category_flags() -> u32 + pub fn vortex_array::arrays::Bool::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Bool::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24104,6 +24696,8 @@ pub fn vortex_array::arrays::Bool::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Bool::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Bool::static_id() -> &'static str + pub fn vortex_array::arrays::Bool::validate(&self, data: &vortex_array::arrays::bool::BoolData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Chunked @@ -24120,6 +24714,8 @@ pub fn vortex_array::arrays::Chunked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Chunked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Chunked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Chunked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Chunked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24146,6 +24742,8 @@ pub fn vortex_array::arrays::Chunked::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Chunked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Chunked::static_id() -> &'static str + pub fn vortex_array::arrays::Chunked::validate(&self, data: &vortex_array::arrays::chunked::ChunkedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Constant @@ -24162,6 +24760,8 @@ pub fn vortex_array::arrays::Constant::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Constant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Constant::category_flags() -> u32 + pub fn vortex_array::arrays::Constant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Constant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24188,6 +24788,8 @@ pub fn vortex_array::arrays::Constant::serialize(_array: vortex_array::ArrayView pub fn vortex_array::arrays::Constant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Constant::static_id() -> &'static str + pub fn vortex_array::arrays::Constant::validate(&self, data: &vortex_array::arrays::constant::ConstantData, dtype: &vortex_array::dtype::DType, _len: usize, _slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Decimal @@ -24204,6 +24806,8 @@ pub fn vortex_array::arrays::Decimal::buffer(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Decimal::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Decimal::category_flags() -> u32 + pub fn vortex_array::arrays::Decimal::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Decimal::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24230,6 +24834,8 @@ pub fn vortex_array::arrays::Decimal::serialize(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Decimal::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Decimal::static_id() -> &'static str + pub fn vortex_array::arrays::Decimal::validate(&self, data: &vortex_array::arrays::decimal::DecimalData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Extension @@ -24246,6 +24852,8 @@ pub fn vortex_array::arrays::Extension::buffer(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Extension::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Extension::category_flags() -> u32 + pub fn vortex_array::arrays::Extension::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Extension::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24272,6 +24880,8 @@ pub fn vortex_array::arrays::Extension::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Extension::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Extension::static_id() -> &'static str + pub fn vortex_array::arrays::Extension::validate(&self, data: &vortex_array::arrays::extension::ExtensionData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Filter @@ -24288,6 +24898,8 @@ pub fn vortex_array::arrays::Filter::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Filter::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Filter::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Filter::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Filter::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24314,6 +24926,8 @@ pub fn vortex_array::arrays::Filter::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Filter::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Filter::static_id() -> &'static str + pub fn vortex_array::arrays::Filter::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::FixedSizeList @@ -24330,6 +24944,8 @@ pub fn vortex_array::arrays::FixedSizeList::buffer(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::FixedSizeList::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::FixedSizeList::category_flags() -> u32 + pub fn vortex_array::arrays::FixedSizeList::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::FixedSizeList::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24356,6 +24972,8 @@ pub fn vortex_array::arrays::FixedSizeList::serialize(_array: vortex_array::Arra pub fn vortex_array::arrays::FixedSizeList::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::FixedSizeList::static_id() -> &'static str + pub fn vortex_array::arrays::FixedSizeList::validate(&self, data: &vortex_array::arrays::fixed_size_list::FixedSizeListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::List @@ -24372,6 +24990,8 @@ pub fn vortex_array::arrays::List::buffer(_array: vortex_array::ArrayView<'_, Se pub fn vortex_array::arrays::List::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::List::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::List::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::List::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24398,6 +25018,8 @@ pub fn vortex_array::arrays::List::serialize(array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::List::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::List::static_id() -> &'static str + pub fn vortex_array::arrays::List::validate(&self, _data: &vortex_array::arrays::list::ListData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::ListView @@ -24414,6 +25036,8 @@ pub fn vortex_array::arrays::ListView::buffer(_array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::ListView::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::ListView::category_flags() -> u32 + pub fn vortex_array::arrays::ListView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::ListView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24440,6 +25064,8 @@ pub fn vortex_array::arrays::ListView::serialize(array: vortex_array::ArrayView< pub fn vortex_array::arrays::ListView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::ListView::static_id() -> &'static str + pub fn vortex_array::arrays::ListView::validate(&self, _data: &vortex_array::arrays::listview::ListViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Masked @@ -24456,6 +25082,8 @@ pub fn vortex_array::arrays::Masked::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Masked::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Masked::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Masked::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Masked::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24482,6 +25110,8 @@ pub fn vortex_array::arrays::Masked::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Masked::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Masked::static_id() -> &'static str + pub fn vortex_array::arrays::Masked::validate(&self, _data: &vortex_array::arrays::masked::MaskedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Primitive @@ -24498,6 +25128,8 @@ pub fn vortex_array::arrays::Primitive::buffer(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::Primitive::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Primitive::category_flags() -> u32 + pub fn vortex_array::arrays::Primitive::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Primitive::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24524,6 +25156,8 @@ pub fn vortex_array::arrays::Primitive::serialize(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::Primitive::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Primitive::static_id() -> &'static str + pub fn vortex_array::arrays::Primitive::validate(&self, data: &vortex_array::arrays::primitive::PrimitiveData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Shared @@ -24540,6 +25174,8 @@ pub fn vortex_array::arrays::Shared::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Shared::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Shared::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::Shared::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Shared::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24566,6 +25202,8 @@ pub fn vortex_array::arrays::Shared::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Shared::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Shared::static_id() -> &'static str + pub fn vortex_array::arrays::Shared::validate(&self, _data: &vortex_array::arrays::shared::SharedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Struct @@ -24582,6 +25220,8 @@ pub fn vortex_array::arrays::Struct::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Struct::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Struct::category_flags() -> u32 + pub fn vortex_array::arrays::Struct::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Struct::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24608,6 +25248,8 @@ pub fn vortex_array::arrays::Struct::serialize(_array: vortex_array::ArrayView<' pub fn vortex_array::arrays::Struct::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Struct::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::VarBin @@ -24624,6 +25266,8 @@ pub fn vortex_array::arrays::VarBin::buffer(array: vortex_array::ArrayView<'_, S pub fn vortex_array::arrays::VarBin::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBin::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::VarBin::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBin::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24650,6 +25294,8 @@ pub fn vortex_array::arrays::VarBin::serialize(array: vortex_array::ArrayView<'_ pub fn vortex_array::arrays::VarBin::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBin::static_id() -> &'static str + pub fn vortex_array::arrays::VarBin::validate(&self, _data: &vortex_array::arrays::varbin::VarBinData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::VarBinView @@ -24666,6 +25312,8 @@ pub fn vortex_array::arrays::VarBinView::buffer(array: vortex_array::ArrayView<' pub fn vortex_array::arrays::VarBinView::buffer_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::VarBinView::category_flags() -> u32 + pub fn vortex_array::arrays::VarBinView::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::VarBinView::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24692,6 +25340,8 @@ pub fn vortex_array::arrays::VarBinView::serialize(_array: vortex_array::ArrayVi pub fn vortex_array::arrays::VarBinView::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::VarBinView::static_id() -> &'static str + pub fn vortex_array::arrays::VarBinView::validate(&self, data: &vortex_array::arrays::varbinview::VarBinViewData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::Variant @@ -24708,6 +25358,8 @@ pub fn vortex_array::arrays::Variant::buffer(_array: vortex_array::ArrayView<'_, pub fn vortex_array::arrays::Variant::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::Variant::category_flags() -> u32 + pub fn vortex_array::arrays::Variant::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::Variant::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24734,6 +25386,8 @@ pub fn vortex_array::arrays::Variant::serialize(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::Variant::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::Variant::static_id() -> &'static str + pub fn vortex_array::arrays::Variant::validate(&self, _data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::dict::Dict @@ -24750,6 +25404,8 @@ pub fn vortex_array::arrays::dict::Dict::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::dict::Dict::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::dict::Dict::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::dict::Dict::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::dict::Dict::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24776,6 +25432,8 @@ pub fn vortex_array::arrays::dict::Dict::serialize(array: vortex_array::ArrayVie pub fn vortex_array::arrays::dict::Dict::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::dict::Dict::static_id() -> &'static str + pub fn vortex_array::arrays::dict::Dict::validate(&self, data: &vortex_array::arrays::dict::DictData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::null::Null @@ -24792,6 +25450,8 @@ pub fn vortex_array::arrays::null::Null::buffer(_array: vortex_array::ArrayView< pub fn vortex_array::arrays::null::Null::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::null::Null::category_flags() -> u32 + pub fn vortex_array::arrays::null::Null::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::null::Null::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24818,6 +25478,8 @@ pub fn vortex_array::arrays::null::Null::serialize(_array: vortex_array::ArrayVi 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::static_id() -> &'static str + 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<()> impl vortex_array::VTable for vortex_array::arrays::patched::Patched @@ -24834,13 +25496,15 @@ pub fn vortex_array::arrays::patched::Patched::buffer(_array: vortex_array::Arra pub fn vortex_array::arrays::patched::Patched::buffer_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> core::option::Option +pub fn vortex_array::arrays::patched::Patched::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::patched::Patched::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::patched::Patched::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String pub fn vortex_array::arrays::patched::Patched::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) -> vortex_error::VortexResult> -pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_array::arrays::patched::Patched::execute(array: vortex_array::Array, _ctx: &mut vortex_array::ExecutionCtx) -> vortex_error::VortexResult 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> @@ -24860,6 +25524,8 @@ pub fn vortex_array::arrays::patched::Patched::serialize(array: vortex_array::Ar pub fn vortex_array::arrays::patched::Patched::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::patched::Patched::static_id() -> &'static str + pub fn vortex_array::arrays::patched::Patched::validate(&self, data: &vortex_array::arrays::patched::PatchedData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::scalar_fn::ScalarFnVTable @@ -24876,6 +25542,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer(_array: vortex_ar pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::category_flags() -> u32 + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24902,6 +25570,8 @@ pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::serialize(_array: vortex pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::slot_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::static_id() -> &'static str where Self: core::marker::Sized + pub fn vortex_array::arrays::scalar_fn::ScalarFnVTable::validate(&self, data: &vortex_array::arrays::scalar_fn::ScalarFnData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> impl vortex_array::VTable for vortex_array::arrays::slice::Slice @@ -24918,6 +25588,8 @@ pub fn vortex_array::arrays::slice::Slice::buffer(_array: vortex_array::ArrayVie pub fn vortex_array::arrays::slice::Slice::buffer_name(_array: vortex_array::ArrayView<'_, Self>, _idx: usize) -> core::option::Option +pub fn vortex_array::arrays::slice::Slice::category_flags() -> u32 where Self: core::marker::Sized + pub fn vortex_array::arrays::slice::Slice::child(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> vortex_array::ArrayRef pub fn vortex_array::arrays::slice::Slice::child_name(array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String @@ -24944,6 +25616,8 @@ pub fn vortex_array::arrays::slice::Slice::serialize(_array: vortex_array::Array pub fn vortex_array::arrays::slice::Slice::slot_name(_array: vortex_array::ArrayView<'_, Self>, idx: usize) -> alloc::string::String +pub fn vortex_array::arrays::slice::Slice::static_id() -> &'static str + pub fn vortex_array::arrays::slice::Slice::validate(&self, data: &Self::ArrayData, dtype: &vortex_array::dtype::DType, len: usize, slots: &[core::option::Option]) -> vortex_error::VortexResult<()> pub trait vortex_array::ValidityChild diff --git a/vortex-array/src/array/erased.rs b/vortex-array/src/array/erased.rs index cb5d2e1bb86..b6caee56580 100644 --- a/vortex-array/src/array/erased.rs +++ b/vortex-array/src/array/erased.rs @@ -50,6 +50,7 @@ use crate::expr::stats::Precision; use crate::expr::stats::Stat; use crate::expr::stats::StatsProviderExt; use crate::matcher::Matcher; +use crate::matcher::MatcherHint; use crate::optimizer::ArrayOptimizer; use crate::scalar::Scalar; use crate::stats::StatsSetRef; @@ -151,6 +152,18 @@ impl ArrayRef { self.0.encoding_id() } + /// Returns the interned encoding index of the array. + #[inline] + pub fn encoding_idx(&self) -> u32 { + self.0.encoding_idx() + } + + /// Returns the category flags of the array's encoding. + #[inline] + pub fn encoding_categories(&self) -> u32 { + self.0.encoding_categories() + } + /// Performs a constant-time slice of the array. pub fn slice(&self, range: Range) -> VortexResult { let len = self.len(); @@ -395,6 +408,35 @@ impl ArrayRef { self.is::() } + /// Returns a new array with the slot at `slot_idx` replaced by `replacement`. + /// + /// This is only valid for physical rewrites: the replacement must have the same logical + /// `DType` and `len` as the existing slot. + /// + /// Takes ownership to allow in-place mutation when the refcount is 1. + /// + /// # Safety + /// + /// The caller must ensure `slot_idx` names an existing slot and `replacement` is a valid + /// physical substitute for that slot, meaning it preserves the slot's logical `DType` and + /// `len` as expected by the enclosing array encoding. + pub unsafe fn with_slot_unchecked( + mut self, + slot_idx: usize, + replacement: ArrayRef, + ) -> ArrayRef { + // Fast path: if we have the only reference, mutate in place. + if let Some(inner) = Arc::get_mut(&mut self.0) { + inner.replace_slot(slot_idx, replacement); + return self; + } + + // Slow path: clone the slots and rebuild. + let mut slots = self.slots().to_vec(); + slots[slot_idx] = Some(replacement); + self.with_slots(slots).vortex_expect("cannot fail") + } + /// Returns a new array with the slot at `slot_idx` replaced by `replacement`. /// /// This is only valid for physical rewrites: the replacement must have the same logical @@ -611,6 +653,18 @@ impl IntoArray for ArrayRef { impl Matcher for V { type Match<'a> = ArrayView<'a, V>; + fn dispatch_hint() -> Option { + let cats = V::category_flags(); + if cats != 0 { + return Some(MatcherHint::Category(cats)); + } + let s = V::static_id(); + if s.is_empty() { + return None; + } + Some(MatcherHint::Exact(crate::intern(s))) + } + fn matches(array: &ArrayRef) -> bool { array.0.as_any().is::>() } diff --git a/vortex-array/src/array/mod.rs b/vortex-array/src/array/mod.rs index f6ed110e172..3571a753cd5 100644 --- a/vortex-array/src/array/mod.rs +++ b/vortex-array/src/array/mod.rs @@ -70,6 +70,12 @@ pub(crate) trait DynArray: 'static + private::Sealed + Send + Sync + Debug { /// Returns the encoding ID of the array. fn encoding_id(&self) -> ArrayId; + /// Returns the interned encoding index for this array. + fn encoding_idx(&self) -> u32; + + /// Returns the category flags for this array's encoding. + fn encoding_categories(&self) -> u32; + /// Fetch the scalar at the given index. /// /// This method panics if the index is out of bounds for the array. @@ -141,6 +147,9 @@ pub(crate) trait DynArray: 'static + private::Sealed + Send + Sync + Debug { /// Compares two arrays of the same concrete type for equality. fn dyn_array_eq(&self, other: &ArrayRef, precision: crate::Precision) -> bool; + /// Replace a single slot in-place. Only called when the Arc refcount is 1. + fn replace_slot(&mut self, slot_idx: usize, replacement: ArrayRef); + /// Returns a new array with the given slots. fn with_slots(&self, this: ArrayRef, slots: Vec>) -> VortexResult; @@ -214,6 +223,14 @@ impl DynArray for ArrayInner { self.vtable.id() } + fn encoding_idx(&self) -> u32 { + self.encoding_idx + } + + fn encoding_categories(&self) -> u32 { + self.encoding_categories + } + fn scalar_at(&self, this: &ArrayRef, index: usize) -> VortexResult { let view = unsafe { ArrayView::new_unchecked(this, &self.data) }; >::scalar_at( @@ -378,6 +395,10 @@ impl DynArray for ArrayInner { }) } + fn replace_slot(&mut self, slot_idx: usize, replacement: ArrayRef) { + self.slots[slot_idx] = Some(replacement); + } + fn with_slots(&self, this: ArrayRef, slots: Vec>) -> VortexResult { let data = self.data.clone(); let stats = this.statistics().to_owned(); diff --git a/vortex-array/src/array/typed.rs b/vortex-array/src/array/typed.rs index 0d8239af589..a633d1671d8 100644 --- a/vortex-array/src/array/typed.rs +++ b/vortex-array/src/array/typed.rs @@ -78,6 +78,8 @@ impl TypedArrayRef for ArrayView<'_, V> {} #[doc(hidden)] pub(crate) struct ArrayInner { pub(crate) vtable: V, + pub(crate) encoding_idx: u32, + pub(crate) encoding_categories: u32, pub(crate) dtype: DType, pub(crate) len: usize, pub(crate) data: V::ArrayData, @@ -91,7 +93,15 @@ impl ArrayInner { pub fn try_new(new: ArrayParts) -> VortexResult { new.vtable .validate(&new.data, &new.dtype, new.len, &new.slots)?; - Ok(unsafe { + Ok(unsafe { Self::new_unchecked(new) }) + } + + /// Create from [`ArrayParts`] without validation. + /// + /// # Safety + /// Caller must ensure dtype and len match the data. + pub unsafe fn new_unchecked(new: ArrayParts) -> Self { + unsafe { Self::from_data_unchecked( new.vtable, new.dtype, @@ -100,7 +110,7 @@ impl ArrayInner { new.slots, ArrayStats::default(), ) - }) + } } /// Create without validation. @@ -115,8 +125,12 @@ impl ArrayInner { slots: Vec>, stats: ArrayStats, ) -> Self { + let encoding_idx = crate::intern(vtable.id().as_ref()); + let encoding_categories = V::category_flags(); Self { vtable, + encoding_idx, + encoding_categories, dtype, len, data, @@ -143,6 +157,8 @@ impl Clone for ArrayInner { fn clone(&self) -> Self { Self { vtable: self.vtable.clone(), + encoding_idx: self.encoding_idx, + encoding_categories: self.encoding_categories, dtype: self.dtype.clone(), len: self.len, data: self.data.clone(), @@ -209,16 +225,7 @@ impl Array { /// Caller must ensure the provided parts are logically consistent. #[doc(hidden)] pub unsafe fn from_parts_unchecked(new: ArrayParts) -> Self { - let inner = ArrayRef::from_inner(Arc::new(unsafe { - ArrayInner::::from_data_unchecked( - new.vtable, - new.dtype, - new.len, - new.data, - new.slots, - ArrayStats::default(), - ) - })); + let inner = ArrayRef::from_inner(Arc::new(unsafe { ArrayInner::new_unchecked(new) })); Self { inner, _phantom: PhantomData, diff --git a/vortex-array/src/array/vtable/mod.rs b/vortex-array/src/array/vtable/mod.rs index 930be7a279c..d43609612b7 100644 --- a/vortex-array/src/array/vtable/mod.rs +++ b/vortex-array/src/array/vtable/mod.rs @@ -59,6 +59,34 @@ pub trait VTable: 'static + Clone + Sized + Send + Sync + Debug { /// Returns the ID of the array. fn id(&self) -> ArrayId; + /// Returns the compile-time string ID for this VTable type. + /// + /// This is used to pre-compute dispatch hints at rule-registration time without + /// needing an instance. VTables with instance-dependent IDs (e.g., `ScalarFnVTable`, + /// which stores the scalar function's own ID) should NOT override this; instead they + /// should set appropriate `category_flags()`. + /// + /// The default implementation returns an empty string, which causes the dispatch + /// system to fall back to the `category_flags()` path (or no hint if both are zero). + fn static_id() -> &'static str + where + Self: Sized, + { + "" + } + + /// Returns the category membership bitmask for this VTable type. + /// + /// Use the `CATEGORY_*` constants from [`crate::matcher`]. The default is `0` + /// (no special category). Override for canonical arrays, constant arrays, and + /// scalar-function arrays. + fn category_flags() -> u32 + where + Self: Sized, + { + 0 + } + /// Validates that externally supplied logical metadata matches the array data. fn validate( &self, diff --git a/vortex-array/src/arrays/bool/vtable/mod.rs b/vortex-array/src/arrays/bool/vtable/mod.rs index 96b978a6ff5..896469813b7 100644 --- a/vortex-array/src/arrays/bool/vtable/mod.rs +++ b/vortex-array/src/arrays/bool/vtable/mod.rs @@ -70,6 +70,14 @@ impl VTable for Bool { Self::ID } + fn static_id() -> &'static str { + "vortex.bool" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 1 } diff --git a/vortex-array/src/arrays/chunked/vtable/canonical.rs b/vortex-array/src/arrays/chunked/vtable/canonical.rs index 73a9b1c856a..70f3bb4b3cd 100644 --- a/vortex-array/src/arrays/chunked/vtable/canonical.rs +++ b/vortex-array/src/arrays/chunked/vtable/canonical.rs @@ -12,8 +12,10 @@ use crate::IntoArray; use crate::array::ArrayView; use crate::arrays::Chunked; use crate::arrays::ChunkedArray; +use crate::arrays::ListView; use crate::arrays::ListViewArray; use crate::arrays::PrimitiveArray; +use crate::arrays::Struct; use crate::arrays::StructArray; use crate::arrays::chunked::ChunkedArrayExt; use crate::arrays::listview::ListViewArrayExt; @@ -45,7 +47,6 @@ pub(super) fn _canonicalize( &owned_chunks, Validity::copy_from_array(array.array())?, struct_dtype, - ctx, )?; Canonical::Struct(struct_array) } @@ -66,24 +67,22 @@ pub(super) fn _canonicalize( /// Packs many [`StructArray`]s to instead be a single [`StructArray`], where the [`DynArray`] for each /// field is a [`ChunkedArray`]. /// -/// The caller guarantees there are at least 2 chunks. +/// The caller guarantees there are at least 2 chunks, and that all chunks are already +/// canonicalized to [`StructArray`] by iterative execution. fn pack_struct_chunks( chunks: &[ArrayRef], validity: Validity, struct_dtype: &StructFields, - ctx: &mut ExecutionCtx, ) -> VortexResult { let len = chunks.iter().map(|chunk| chunk.len()).sum(); let mut field_arrays = Vec::new(); - let executed_chunks: Vec = chunks - .iter() - .map(|c| c.clone().execute::(ctx)) - .collect::>()?; - for (field_idx, field_dtype) in struct_dtype.fields().enumerate() { let mut field_chunks = Vec::with_capacity(chunks.len()); - for struct_array in &executed_chunks { + for chunk in chunks { + let struct_array = chunk + .as_opt::() + .vortex_expect("struct chunk pre-canonicalized by iterative execution"); let field = struct_array.unmasked_field(field_idx).clone(); field_chunks.push(field); } @@ -103,7 +102,8 @@ fn pack_struct_chunks( /// /// We use the existing arrays (chunks) to form a chunked array of `elements` (the child array). /// -/// The caller guarantees there are at least 2 chunks. +/// The caller guarantees there are at least 2 chunks, and that all chunks are already +/// canonicalized to [`ListViewArray`] by iterative execution. fn swizzle_list_chunks( chunks: &[ArrayRef], validity: Validity, @@ -135,7 +135,11 @@ fn swizzle_list_chunks( let mut sizes = BufferMut::::with_capacity(len); for chunk in chunks { - let chunk_array = chunk.clone().execute::(ctx)?; + let chunk_array = chunk + .clone() + .try_downcast::() + .ok() + .vortex_expect("list chunk pre-canonicalized by iterative execution"); // By rebuilding as zero-copy to `List` and trimming all elements (to prevent gaps), we make // the final output `ListView` also zero-copyable to `List`. let chunk_array = chunk_array.rebuild(ListViewRebuildMode::MakeExact)?; diff --git a/vortex-array/src/arrays/chunked/vtable/mod.rs b/vortex-array/src/arrays/chunked/vtable/mod.rs index 23e8b388e32..f68662ae926 100644 --- a/vortex-array/src/arrays/chunked/vtable/mod.rs +++ b/vortex-array/src/arrays/chunked/vtable/mod.rs @@ -12,6 +12,7 @@ use vortex_error::vortex_err; use vortex_error::vortex_panic; use vortex_session::VortexSession; +use crate::AnyCanonical; use crate::ArrayEq; use crate::ArrayHash; use crate::ArrayRef; @@ -77,6 +78,10 @@ impl VTable for Chunked { Self::ID } + fn static_id() -> &'static str { + "vortex.chunked" + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } @@ -237,6 +242,19 @@ impl VTable for Chunked { } fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { + // Iteratively request execution of each chunk until it reaches canonical form. + // This gives the scheduler visibility into child execution and enables + // cross-step optimizations between chunk decoding steps. + for i in 0..array.nchunks() { + if !array.chunk(i).is::() { + return Ok(ExecutionResult::execute_slot::( + array, + i + CHUNKS_OFFSET, + )); + } + } + + // All chunks are now canonical — combine them. Ok(ExecutionResult::done(_canonicalize(array.as_view(), ctx)?)) } diff --git a/vortex-array/src/arrays/constant/vtable/mod.rs b/vortex-array/src/arrays/constant/vtable/mod.rs index c462c8651d2..00fed309f4d 100644 --- a/vortex-array/src/arrays/constant/vtable/mod.rs +++ b/vortex-array/src/arrays/constant/vtable/mod.rs @@ -77,6 +77,14 @@ impl VTable for Constant { Self::ID } + fn static_id() -> &'static str { + "vortex.constant" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CONSTANT + } + fn validate( &self, data: &ConstantData, diff --git a/vortex-array/src/arrays/decimal/vtable/mod.rs b/vortex-array/src/arrays/decimal/vtable/mod.rs index ff4070bdff3..96956ffee09 100644 --- a/vortex-array/src/arrays/decimal/vtable/mod.rs +++ b/vortex-array/src/arrays/decimal/vtable/mod.rs @@ -71,6 +71,14 @@ impl VTable for Decimal { Self::ID } + fn static_id() -> &'static str { + "vortex.decimal" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 1 } diff --git a/vortex-array/src/arrays/dict/vtable/mod.rs b/vortex-array/src/arrays/dict/vtable/mod.rs index e3192d3040e..35ddf859cfb 100644 --- a/vortex-array/src/arrays/dict/vtable/mod.rs +++ b/vortex-array/src/arrays/dict/vtable/mod.rs @@ -76,6 +76,10 @@ impl VTable for Dict { Self::ID } + fn static_id() -> &'static str { + "vortex.dict" + } + fn validate( &self, data: &DictData, diff --git a/vortex-array/src/arrays/extension/vtable/mod.rs b/vortex-array/src/arrays/extension/vtable/mod.rs index 91cbe67ffe9..1660d639ec0 100644 --- a/vortex-array/src/arrays/extension/vtable/mod.rs +++ b/vortex-array/src/arrays/extension/vtable/mod.rs @@ -57,6 +57,14 @@ impl VTable for Extension { Self::ID } + fn static_id() -> &'static str { + "vortex.ext" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } diff --git a/vortex-array/src/arrays/filter/vtable.rs b/vortex-array/src/arrays/filter/vtable.rs index 516a8dbe1ad..b97ba47af46 100644 --- a/vortex-array/src/arrays/filter/vtable.rs +++ b/vortex-array/src/arrays/filter/vtable.rs @@ -2,6 +2,7 @@ // SPDX-FileCopyrightText: Copyright the Vortex contributors use std::hash::Hasher; +use std::sync::Arc; use vortex_error::VortexExpect; use vortex_error::VortexResult; @@ -72,6 +73,10 @@ impl VTable for Filter { Self::ID } + fn static_id() -> &'static str { + "vortex.filter" + } + fn validate( &self, data: &Self::ArrayData, @@ -146,7 +151,7 @@ impl VTable for Filter { return Ok(ExecutionResult::done(canonical)); } let mask_values = match &array.mask { - Mask::Values(v) => v.clone(), + Mask::Values(v) => Arc::clone(v), _ => unreachable!("`execute_filter_fast_paths` handles AllTrue and AllFalse"), }; 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..dfa267400ff 100644 --- a/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs +++ b/vortex-array/src/arrays/fixed_size_list/vtable/mod.rs @@ -68,6 +68,14 @@ impl VTable for FixedSizeList { Self::ID } + fn static_id() -> &'static str { + "vortex.fixed_size_list" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } diff --git a/vortex-array/src/arrays/list/vtable/mod.rs b/vortex-array/src/arrays/list/vtable/mod.rs index 2e38d848c95..f7af8ac19dd 100644 --- a/vortex-array/src/arrays/list/vtable/mod.rs +++ b/vortex-array/src/arrays/list/vtable/mod.rs @@ -23,9 +23,11 @@ use crate::array::Array; use crate::array::ArrayId; use crate::array::ArrayView; use crate::array::VTable; +use crate::arrays::Primitive; use crate::arrays::list::ListArrayExt; use crate::arrays::list::ListData; use crate::arrays::list::array::NUM_SLOTS; +use crate::arrays::list::array::OFFSETS_SLOT; use crate::arrays::list::array::SLOT_NAMES; use crate::arrays::list::compute::PARENT_KERNELS; use crate::arrays::list::compute::rules::PARENT_RULES; @@ -34,6 +36,7 @@ use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::dtype::Nullability; use crate::dtype::PType; +use crate::require_child; use crate::serde::ArrayChildren; use crate::validity::Validity; mod operations; @@ -69,6 +72,10 @@ impl VTable for List { Self::ID } + fn static_id() -> &'static str { + "vortex.list" + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } @@ -114,7 +121,7 @@ impl VTable for List { let elements = slots[crate::arrays::list::array::ELEMENTS_SLOT] .as_ref() .vortex_expect("ListArray elements slot"); - let offsets = slots[crate::arrays::list::array::OFFSETS_SLOT] + let offsets = slots[OFFSETS_SLOT] .as_ref() .vortex_expect("ListArray offsets slot"); vortex_ensure!( @@ -180,6 +187,7 @@ impl VTable for List { } fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { + let array = require_child!(array, array.offsets(), OFFSETS_SLOT => Primitive); Ok(ExecutionResult::done( list_view_from_list(array, ctx)?.into_array(), )) diff --git a/vortex-array/src/arrays/listview/vtable/mod.rs b/vortex-array/src/arrays/listview/vtable/mod.rs index b64c56451a3..1f097bc2e46 100644 --- a/vortex-array/src/arrays/listview/vtable/mod.rs +++ b/vortex-array/src/arrays/listview/vtable/mod.rs @@ -78,6 +78,14 @@ impl VTable for ListView { Self::ID } + fn static_id() -> &'static str { + "vortex.listview" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } diff --git a/vortex-array/src/arrays/masked/vtable/mod.rs b/vortex-array/src/arrays/masked/vtable/mod.rs index f4924e28ea7..3e54efab4d1 100644 --- a/vortex-array/src/arrays/masked/vtable/mod.rs +++ b/vortex-array/src/arrays/masked/vtable/mod.rs @@ -72,6 +72,10 @@ impl VTable for Masked { Self::ID } + fn static_id() -> &'static str { + "vortex.masked" + } + fn validate( &self, _data: &MaskedData, diff --git a/vortex-array/src/arrays/null/mod.rs b/vortex-array/src/arrays/null/mod.rs index ed00c7a4a93..dbe73548c24 100644 --- a/vortex-array/src/arrays/null/mod.rs +++ b/vortex-array/src/arrays/null/mod.rs @@ -56,6 +56,14 @@ impl VTable for Null { Self::ID } + fn static_id() -> &'static str { + "vortex.null" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn validate( &self, _data: &NullData, diff --git a/vortex-array/src/arrays/patched/vtable/mod.rs b/vortex-array/src/arrays/patched/vtable/mod.rs index f40d3bac409..84a231e18ed 100644 --- a/vortex-array/src/arrays/patched/vtable/mod.rs +++ b/vortex-array/src/arrays/patched/vtable/mod.rs @@ -31,10 +31,15 @@ use crate::array::ArrayView; use crate::array::VTable; use crate::array::ValidityChild; use crate::array::ValidityVTableFromChild; +use crate::arrays::Primitive; use crate::arrays::PrimitiveArray; use crate::arrays::patched::PatchedArrayExt; use crate::arrays::patched::PatchedData; +use crate::arrays::patched::array::INDICES_SLOT; +use crate::arrays::patched::array::INNER_SLOT; +use crate::arrays::patched::array::LANE_OFFSETS_SLOT; use crate::arrays::patched::array::SLOT_NAMES; +use crate::arrays::patched::array::VALUES_SLOT; use crate::arrays::patched::compute::rules::PARENT_RULES; use crate::arrays::patched::vtable::kernels::PARENT_KERNELS; use crate::arrays::primitive::PrimitiveDataParts; @@ -45,6 +50,7 @@ use crate::dtype::DType; use crate::dtype::NativePType; use crate::dtype::PType; use crate::match_each_native_ptype; +use crate::require_child; use crate::serde::ArrayChildren; /// A [`Patched`]-encoded Vortex array. @@ -98,6 +104,10 @@ impl VTable for Patched { ArrayId::new_ref("vortex.patched") } + fn static_id() -> &'static str { + "vortex.patched" + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } @@ -242,12 +252,18 @@ impl VTable for Patched { SLOT_NAMES[idx].to_string() } - fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { + fn execute(array: Array, _ctx: &mut ExecutionCtx) -> VortexResult { + let array = require_child!(array, array.base_array(), INNER_SLOT => Primitive); + let array = require_child!(array, array.lane_offsets(), LANE_OFFSETS_SLOT => Primitive); + let array = require_child!(array, array.patch_indices(), INDICES_SLOT => Primitive); + let array = require_child!(array, array.patch_values(), VALUES_SLOT => Primitive); + let inner = array .base_array() .clone() - .execute::(ctx)? - .into_primitive(); + .try_downcast::() + .ok() + .vortex_expect("base_array pre-canonicalized to Primitive"); // TODO(joe): use iterative execution let PrimitiveDataParts { @@ -259,17 +275,21 @@ impl VTable for Patched { let lane_offsets = array .lane_offsets() .clone() - .execute::(ctx)?; + .try_downcast::() + .ok() + .vortex_expect("lane_offsets pre-canonicalized to Primitive"); let indices = array .patch_indices() .clone() - .execute::(ctx)?; - - // TODO(aduffy): add support for non-primitive PatchedArray patches application (?) + .try_downcast::() + .ok() + .vortex_expect("patch_indices pre-canonicalized to Primitive"); let values = array .patch_values() .clone() - .execute::(ctx)?; + .try_downcast::() + .ok() + .vortex_expect("patch_values pre-canonicalized to Primitive"); let patched_values = match_each_native_ptype!(values.ptype(), |V| { let offset = array.offset(); diff --git a/vortex-array/src/arrays/primitive/vtable/mod.rs b/vortex-array/src/arrays/primitive/vtable/mod.rs index 15532f38383..fe74580ceff 100644 --- a/vortex-array/src/arrays/primitive/vtable/mod.rs +++ b/vortex-array/src/arrays/primitive/vtable/mod.rs @@ -60,6 +60,14 @@ impl VTable for Primitive { Self::ID } + fn static_id() -> &'static str { + "vortex.primitive" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 1 } diff --git a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs index 40dfd22003e..2c0282c9327 100644 --- a/vortex-array/src/arrays/scalar_fn/vtable/mod.rs +++ b/vortex-array/src/arrays/scalar_fn/vtable/mod.rs @@ -36,6 +36,7 @@ use crate::executor::ExecutionCtx; use crate::executor::ExecutionResult; use crate::expr::Expression; use crate::matcher::Matcher; +use crate::matcher::MatcherHint; use crate::scalar_fn; use crate::scalar_fn::Arity; use crate::scalar_fn::ChildName; @@ -75,6 +76,10 @@ impl VTable for ScalarFnVTable { self.scalar_fn.id() } + fn category_flags() -> u32 { + crate::matcher::CATEGORY_SCALAR_FN + } + fn validate( &self, data: &ScalarFnData, @@ -204,6 +209,10 @@ pub struct AnyScalarFn; impl Matcher for AnyScalarFn { type Match<'a> = ArrayView<'a, ScalarFnVTable>; + fn dispatch_hint() -> Option { + Some(MatcherHint::Category(crate::matcher::CATEGORY_SCALAR_FN)) + } + fn matches(array: &ArrayRef) -> bool { array.is::() } @@ -220,6 +229,10 @@ pub struct ExactScalarFn(PhantomData); impl Matcher for ExactScalarFn { type Match<'a> = ScalarFnArrayView<'a, F>; + fn dispatch_hint() -> Option { + Some(MatcherHint::Exact(crate::intern(F::static_id().as_ref()))) + } + fn matches(array: &ArrayRef) -> bool { if let Some(scalar_fn_array) = array.as_opt::() { scalar_fn_array.data().scalar_fn().is::() @@ -282,7 +295,7 @@ impl Display for FakeEq { impl scalar_fn::ScalarFnVTable for ArrayExpr { type Options = FakeEq; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.array") } diff --git a/vortex-array/src/arrays/shared/vtable.rs b/vortex-array/src/arrays/shared/vtable.rs index d6e1baf485b..8b88c20cad7 100644 --- a/vortex-array/src/arrays/shared/vtable.rs +++ b/vortex-array/src/arrays/shared/vtable.rs @@ -60,6 +60,10 @@ impl VTable for Shared { Self::ID } + fn static_id() -> &'static str { + "vortex.shared" + } + fn validate( &self, _data: &SharedData, diff --git a/vortex-array/src/arrays/slice/vtable.rs b/vortex-array/src/arrays/slice/vtable.rs index 0d29d519806..386fbcf783d 100644 --- a/vortex-array/src/arrays/slice/vtable.rs +++ b/vortex-array/src/arrays/slice/vtable.rs @@ -71,6 +71,10 @@ impl VTable for Slice { Slice::ID } + fn static_id() -> &'static str { + "vortex.slice" + } + fn validate( &self, data: &Self::ArrayData, diff --git a/vortex-array/src/arrays/struct_/vtable/mod.rs b/vortex-array/src/arrays/struct_/vtable/mod.rs index 1ad8bad2097..d3b49975bf9 100644 --- a/vortex-array/src/arrays/struct_/vtable/mod.rs +++ b/vortex-array/src/arrays/struct_/vtable/mod.rs @@ -59,6 +59,14 @@ impl VTable for Struct { Self::ID } + fn static_id() -> &'static str { + "vortex.struct" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 0 } diff --git a/vortex-array/src/arrays/varbin/vtable/mod.rs b/vortex-array/src/arrays/varbin/vtable/mod.rs index 8acb428b0bc..ad42e80060c 100644 --- a/vortex-array/src/arrays/varbin/vtable/mod.rs +++ b/vortex-array/src/arrays/varbin/vtable/mod.rs @@ -18,14 +18,17 @@ use crate::array::Array; use crate::array::ArrayId; use crate::array::ArrayView; use crate::array::VTable; +use crate::arrays::Primitive; use crate::arrays::varbin::VarBinArrayExt; use crate::arrays::varbin::VarBinData; use crate::arrays::varbin::array::NUM_SLOTS; +use crate::arrays::varbin::array::OFFSETS_SLOT; use crate::arrays::varbin::array::SLOT_NAMES; use crate::buffer::BufferHandle; use crate::dtype::DType; use crate::dtype::Nullability; use crate::dtype::PType; +use crate::require_child; use crate::serde::ArrayChildren; use crate::validity::Validity; mod canonical; @@ -73,6 +76,10 @@ impl VTable for VarBin { Self::ID } + fn static_id() -> &'static str { + "vortex.varbin" + } + fn nbuffers(_array: ArrayView<'_, Self>) -> usize { 1 } @@ -89,7 +96,7 @@ impl VTable for VarBin { "VarBinArray expected {NUM_SLOTS} slots, found {}", slots.len() ); - let offsets = slots[crate::arrays::varbin::array::OFFSETS_SLOT] + let offsets = slots[OFFSETS_SLOT] .as_ref() .vortex_expect("VarBinArray offsets slot"); vortex_ensure!( @@ -187,6 +194,7 @@ impl VTable for VarBin { } fn execute(array: Array, ctx: &mut ExecutionCtx) -> VortexResult { + let array = require_child!(array, array.offsets(), OFFSETS_SLOT => Primitive); Ok(ExecutionResult::done( varbin_to_canonical(array.as_view(), ctx)?.into_array(), )) diff --git a/vortex-array/src/arrays/varbinview/vtable/mod.rs b/vortex-array/src/arrays/varbinview/vtable/mod.rs index a867eeb5e62..2f711b312fa 100644 --- a/vortex-array/src/arrays/varbinview/vtable/mod.rs +++ b/vortex-array/src/arrays/varbinview/vtable/mod.rs @@ -77,6 +77,14 @@ impl VTable for VarBinView { Self::ID } + fn static_id() -> &'static str { + "vortex.varbinview" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn nbuffers(array: ArrayView<'_, Self>) -> usize { array.data_buffers().len() + 1 } diff --git a/vortex-array/src/arrays/variant/vtable/mod.rs b/vortex-array/src/arrays/variant/vtable/mod.rs index bd00afd027e..9465f13de69 100644 --- a/vortex-array/src/arrays/variant/vtable/mod.rs +++ b/vortex-array/src/arrays/variant/vtable/mod.rs @@ -58,6 +58,14 @@ impl VTable for Variant { Self::ID } + fn static_id() -> &'static str { + "vortex.variant" + } + + fn category_flags() -> u32 { + crate::matcher::CATEGORY_CANONICAL + } + fn validate( &self, _data: &Self::ArrayData, diff --git a/vortex-array/src/canonical.rs b/vortex-array/src/canonical.rs index ffae20f09c8..6883073dc44 100644 --- a/vortex-array/src/canonical.rs +++ b/vortex-array/src/canonical.rs @@ -994,6 +994,12 @@ pub struct AnyCanonical; impl Matcher for AnyCanonical { type Match<'a> = CanonicalView<'a>; + fn dispatch_hint() -> Option { + Some(crate::matcher::MatcherHint::Category( + crate::matcher::CATEGORY_CANONICAL, + )) + } + fn matches(array: &ArrayRef) -> bool { array.is::() || array.is::() diff --git a/vortex-array/src/columnar.rs b/vortex-array/src/columnar.rs index 0f6d65dae2b..6ae2cf45cf8 100644 --- a/vortex-array/src/columnar.rs +++ b/vortex-array/src/columnar.rs @@ -93,6 +93,12 @@ pub struct AnyColumnar; impl Matcher for AnyColumnar { type Match<'a> = ColumnarView<'a>; + fn dispatch_hint() -> Option { + Some(crate::matcher::MatcherHint::Category( + crate::matcher::CATEGORY_CANONICAL | crate::matcher::CATEGORY_CONSTANT, + )) + } + fn try_match<'a>(array: &'a ArrayRef) -> Option> { if let Some(constant) = array.as_opt::() { Some(ColumnarView::Constant(constant)) diff --git a/vortex-array/src/executor.rs b/vortex-array/src/executor.rs index 80581795996..f02331de891 100644 --- a/vortex-array/src/executor.rs +++ b/vortex-array/src/executor.rs @@ -105,6 +105,9 @@ impl ArrayRef { }); let mut current = self.optimize()?; + // self is now unused + drop(self); + // Stack frames: (parent, slot_idx, done_predicate_for_slot) let mut stack: Vec<(ArrayRef, usize, DonePredicate)> = Vec::new(); @@ -120,7 +123,7 @@ impl ArrayRef { return Ok(current); } Some((parent, slot_idx, _)) => { - current = parent.with_slot(slot_idx, current)?; + current = unsafe { parent.with_slot_unchecked(slot_idx, current) }; current = current.optimize()?; continue; } @@ -136,7 +139,7 @@ impl ArrayRef { return Ok(current); } Some((parent, slot_idx, _)) => { - current = parent.with_slot(slot_idx, current)?; + current = unsafe { parent.with_slot_unchecked(slot_idx, current) }; current = current.optimize()?; continue; } @@ -335,7 +338,7 @@ impl Executable for ArrayRef { // replacing it, and returning the updated array. let child = array.slots()[i].clone().vortex_expect("valid slot index"); let executed_child = child.execute::(ctx)?; - array.with_slot(i, executed_child) + Ok(unsafe { array.with_slot_unchecked(i, executed_child) }) } } } diff --git a/vortex-array/src/intern.rs b/vortex-array/src/intern.rs new file mode 100644 index 00000000000..ea90f999f1e --- /dev/null +++ b/vortex-array/src/intern.rs @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: Apache-2.0 +// SPDX-FileCopyrightText: Copyright the Vortex contributors + +//! Global string interning pool for encoding and scalar function IDs. +//! +//! Both [`ArrayId`] and [`ScalarFnId`] are `ArcRef`. Interning maps each unique +//! string to a dense sequential [`u32`], enabling `O(1)` dispatch table lookups via +//! [`Vec`] indexing instead of hashing. + +use std::sync::OnceLock; +use std::sync::atomic::AtomicU32; +use std::sync::atomic::Ordering; + +use parking_lot::RwLock; +use vortex_utils::aliases::hash_map::HashMap; + +static POOL: OnceLock, u32>>> = OnceLock::new(); +static COUNTER: AtomicU32 = AtomicU32::new(0); + +/// Intern a string, returning a stable dense sequential index. +/// +/// Repeated calls with the same string always return the same index. +/// Indices are assigned starting from `0` in order of first insertion. +pub fn intern(s: &str) -> u32 { + let pool = POOL.get_or_init(|| RwLock::new(HashMap::default())); + { + let guard = pool.read(); + if let Some(&idx) = guard.get(s) { + return idx; + } + } + let mut guard = pool.write(); + // Re-check under write lock (another thread may have inserted). + *guard + .entry(Box::from(s)) + .or_insert_with(|| COUNTER.fetch_add(1, Ordering::Relaxed)) +} diff --git a/vortex-array/src/kernel.rs b/vortex-array/src/kernel.rs index f5b75471437..f829afd4637 100644 --- a/vortex-array/src/kernel.rs +++ b/vortex-array/src/kernel.rs @@ -13,17 +13,23 @@ //! registering them in a [`ParentKernelSet`]. Each kernel specifies which parent types it //! handles via a [`Matcher`]. +use std::any::Any; use std::any::type_name; use std::fmt::Debug; use std::marker::PhantomData; +use std::sync::OnceLock; +use parking_lot::RwLock; use vortex_error::VortexResult; +use vortex_error::vortex_panic; +use vortex_utils::aliases::hash_map::HashMap; use crate::ArrayRef; use crate::ExecutionCtx; use crate::array::ArrayView; use crate::array::VTable; use crate::matcher::Matcher; +use crate::matcher::MatcherHint; /// A collection of [`ExecuteParentKernel`]s registered for a specific child encoding. /// @@ -34,6 +40,116 @@ pub struct ParentKernelSet { kernels: &'static [&'static dyn DynParentKernel], } +fn trace_kernel_event( + kernel: &dyn DynParentKernel, + child: ArrayView<'_, V>, + parent: &ArrayRef, + child_idx: usize, + message: &'static str, + rewritten: Option<&ArrayRef>, +) { + if !tracing::enabled!(tracing::Level::TRACE) { + return; + } + + tracing::trace!( + kernel = ?kernel, + child = %child.array().encoding_id(), + parent = %parent.encoding_id(), + child_idx, + rewritten = rewritten.map(ArrayRef::encoding_id).as_deref(), + "{message}" + ); +} + +struct ParentKernelDispatch { + exact: Vec>>, + category: Vec<(u32, &'static dyn DynParentKernel)>, + fallback: Vec<&'static dyn DynParentKernel>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +struct DispatchCacheKey { + ptr: usize, + len: usize, +} + +impl DispatchCacheKey { + fn new(entries: &'static [&'static T]) -> Self { + Self { + ptr: entries.as_ptr() as usize, + len: entries.len(), + } + } +} + +fn kernel_dispatch_cache() +-> &'static RwLock> { + static CACHE: OnceLock>> = + OnceLock::new(); + CACHE.get_or_init(|| RwLock::new(HashMap::default())) +} + +fn build_kernel_dispatch( + kernels: &'static [&'static dyn DynParentKernel], +) -> ParentKernelDispatch { + let mut exact: Vec>> = Vec::new(); + let mut category: Vec<(u32, &'static dyn DynParentKernel)> = Vec::new(); + let mut fallback: Vec<&'static dyn DynParentKernel> = Vec::new(); + + for kernel in kernels.iter().copied() { + match kernel.dispatch_hint() { + Some(MatcherHint::Exact(idx)) => { + let idx = idx as usize; + if idx >= exact.len() { + exact.resize_with(idx + 1, Vec::new); + } + exact[idx].push(kernel); + } + Some(MatcherHint::Category(mask)) => { + category.push((mask, kernel)); + } + None => { + fallback.push(kernel); + } + } + } + + ParentKernelDispatch { + exact, + category, + fallback, + } +} + +fn cached_kernel_dispatch( + kernels: &'static [&'static dyn DynParentKernel], +) -> &'static ParentKernelDispatch { + let key = DispatchCacheKey::new(kernels); + + { + let cache = kernel_dispatch_cache().read(); + if let Some(dispatch) = cache.get(&key) { + return match dispatch.downcast_ref::>() { + Some(dispatch) => dispatch, + None => vortex_panic!("kernel dispatch cache type mismatch"), + }; + } + } + + let mut cache = kernel_dispatch_cache().write(); + if let Some(dispatch) = cache.get(&key) { + return match dispatch.downcast_ref::>() { + Some(dispatch) => dispatch, + None => vortex_panic!("kernel dispatch cache type mismatch"), + }; + } + + let dispatch = Box::leak(Box::new(build_kernel_dispatch(kernels))); + cache.insert(key, dispatch as &'static (dyn Any + Send + Sync)); + dispatch +} + impl ParentKernelSet { /// Create a new parent kernel set with the given kernels. /// @@ -64,13 +180,163 @@ impl ParentKernelSet { child_idx: usize, ctx: &mut ExecutionCtx, ) -> VortexResult> { - for kernel in self.kernels.iter() { + let dispatch = cached_kernel_dispatch(self.kernels); + let encoding_idx = parent.encoding_idx() as usize; + let categories = parent.encoding_categories(); + + // Try exact-match kernels first (O(1) Vec index). + if let Some(kernels) = dispatch.exact.get(encoding_idx) { + for kernel in kernels { + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: checking kernel", + None, + ); + if !kernel.matches(parent) { + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: parent mismatch", + None, + ); + continue; + } + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: matched parent", + None, + ); + if let Some(reduced) = kernel.execute_parent(child, parent, child_idx, ctx)? { + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: rewrote parent", + Some(&reduced), + ); + return Ok(Some(reduced)); + } + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: declined after match", + None, + ); + } + } + + // Try category kernels (small flat scan). + for (mask, kernel) in &dispatch.category { + if categories & mask == 0 { + continue; + } + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: checking kernel", + None, + ); if !kernel.matches(parent) { + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: parent mismatch", + None, + ); continue; } + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: matched parent", + None, + ); if let Some(reduced) = kernel.execute_parent(child, parent, child_idx, ctx)? { + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: rewrote parent", + Some(&reduced), + ); return Ok(Some(reduced)); } + trace_kernel_event( + *kernel, + child, + parent, + child_idx, + "execute_parent: declined after match", + None, + ); + } + + // Fallback (wildcards like AnyArray). + for kernel in dispatch.fallback.iter().copied() { + trace_kernel_event( + kernel, + child, + parent, + child_idx, + "execute_parent: checking kernel", + None, + ); + if !kernel.matches(parent) { + trace_kernel_event( + kernel, + child, + parent, + child_idx, + "execute_parent: parent mismatch", + None, + ); + continue; + } + trace_kernel_event( + kernel, + child, + parent, + child_idx, + "execute_parent: matched parent", + None, + ); + if let Some(reduced) = kernel.execute_parent(child, parent, child_idx, ctx)? { + trace_kernel_event( + kernel, + child, + parent, + child_idx, + "execute_parent: rewrote parent", + Some(&reduced), + ); + return Ok(Some(reduced)); + } + trace_kernel_event( + kernel, + child, + parent, + child_idx, + "execute_parent: declined after match", + None, + ); } Ok(None) } @@ -102,7 +368,10 @@ pub trait ExecuteParentKernel: Debug + Send + Sync + 'static { /// Type-erased version of [`ExecuteParentKernel`] used for dynamic dispatch within /// [`ParentKernelSet`]. -pub trait DynParentKernel: Send + Sync { +pub trait DynParentKernel: Debug + Send + Sync { + /// Returns a precomputed hint for the outer parent array kind this kernel may accept. + fn dispatch_hint(&self) -> Option; + /// Returns `true` if this kernel's parent [`Matcher`] matches the given parent array. fn matches(&self, parent: &ArrayRef) -> bool; @@ -133,6 +402,10 @@ impl> Debug for ParentKernelAdapter { } impl> DynParentKernel for ParentKernelAdapter { + fn dispatch_hint(&self) -> Option { + K::Parent::dispatch_hint() + } + fn matches(&self, parent: &ArrayRef) -> bool { K::Parent::matches(parent) } diff --git a/vortex-array/src/lib.rs b/vortex-array/src/lib.rs index cb0956b8f47..c6e8195cfa1 100644 --- a/vortex-array/src/lib.rs +++ b/vortex-array/src/lib.rs @@ -47,6 +47,8 @@ pub mod expr; mod expression; pub mod extension; mod hash; +mod intern; +pub(crate) use intern::intern; pub mod iter; pub mod kernel; pub mod mask; diff --git a/vortex-array/src/matcher.rs b/vortex-array/src/matcher.rs index b7d82fa3866..75f82825dec 100644 --- a/vortex-array/src/matcher.rs +++ b/vortex-array/src/matcher.rs @@ -3,10 +3,44 @@ use crate::ArrayRef; +/// Category bit for canonical arrays (Null, Bool, Primitive, Decimal, Struct, ListView, +/// FixedSizeList, VarBinView, Variant, Extension). +pub const CATEGORY_CANONICAL: u32 = 1 << 0; + +/// Category bit for the Constant array encoding. +pub const CATEGORY_CONSTANT: u32 = 1 << 1; + +/// Category bit for ScalarFn arrays (any scalar function expression). +pub const CATEGORY_SCALAR_FN: u32 = 1 << 2; + +/// A precomputed hint describing what an outer array kind a matcher can accept. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum MatcherHint { + /// Matches exactly one encoding identified by its interned string index. + /// + /// The index is obtained via [`crate::intern`] on the encoding's or scalar + /// function's ID string. + Exact(u32), + + /// Matches any encoding whose category flags satisfy `(flags & mask) != 0`. + /// + /// Use the `CATEGORY_*` constants as the mask value. + Category(u32), +} + /// Trait for matching array types. pub trait Matcher { type Match<'a>; + /// Returns a hint for the outer array kind this matcher may accept. + /// + /// Matchers that can only ever match a specific array encoding or category + /// should override this so dispatchers can skip impossible rules before + /// calling [`matches`](Self::matches). + fn dispatch_hint() -> Option { + None + } + /// Check if the given array matches this matcher type fn matches(array: &ArrayRef) -> bool { Self::try_match(array).is_some() diff --git a/vortex-array/src/optimizer/rules.rs b/vortex-array/src/optimizer/rules.rs index e505b21a199..cfdf6b1c2e2 100644 --- a/vortex-array/src/optimizer/rules.rs +++ b/vortex-array/src/optimizer/rules.rs @@ -18,16 +18,22 @@ //! Rules are collected into [`ReduceRuleSet`] and [`ParentRuleSet`] respectively, and //! evaluated by the optimizer in a fixpoint loop until no more rules apply. +use std::any::Any; use std::any::type_name; use std::fmt::Debug; use std::marker::PhantomData; +use std::sync::OnceLock; +use parking_lot::RwLock; use vortex_error::VortexResult; +use vortex_error::vortex_panic; +use vortex_utils::aliases::hash_map::HashMap; use crate::ArrayRef; use crate::array::ArrayView; use crate::array::VTable; use crate::matcher::Matcher; +use crate::matcher::MatcherHint; /// A metadata-only rewrite rule that transforms an array based on its own structure (Layer 1). /// @@ -69,6 +75,8 @@ pub trait ArrayParentReduceRule: Debug + Send + Sync + 'static { /// Type-erased version of [`ArrayParentReduceRule`] used for dynamic dispatch within /// [`ParentRuleSet`]. pub trait DynArrayParentReduceRule: Debug + Send + Sync { + fn dispatch_hint(&self) -> Option; + fn matches(&self, parent: &ArrayRef) -> bool; fn reduce_parent( @@ -98,6 +106,10 @@ impl> Debug for ParentReduceRuleAdapter> DynArrayParentReduceRule for ParentReduceRuleAdapter { + fn dispatch_hint(&self) -> Option { + K::Parent::dispatch_hint() + } + fn matches(&self, parent: &ArrayRef) -> bool { K::Parent::matches(parent) } @@ -145,6 +157,116 @@ pub struct ParentRuleSet { rules: &'static [&'static dyn DynArrayParentReduceRule], } +struct ParentRuleDispatch { + exact: Vec>>, + category: Vec<(u32, &'static dyn DynArrayParentReduceRule)>, + fallback: Vec<&'static dyn DynArrayParentReduceRule>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +struct DispatchCacheKey { + ptr: usize, + len: usize, +} + +impl DispatchCacheKey { + fn new(entries: &'static [&'static T]) -> Self { + Self { + ptr: entries.as_ptr() as usize, + len: entries.len(), + } + } +} + +fn rule_dispatch_cache() +-> &'static RwLock> { + static CACHE: OnceLock>> = + OnceLock::new(); + CACHE.get_or_init(|| RwLock::new(HashMap::default())) +} + +fn build_rule_dispatch( + rules: &'static [&'static dyn DynArrayParentReduceRule], +) -> ParentRuleDispatch { + let mut exact: Vec>> = Vec::new(); + let mut category: Vec<(u32, &'static dyn DynArrayParentReduceRule)> = Vec::new(); + let mut fallback: Vec<&'static dyn DynArrayParentReduceRule> = Vec::new(); + + for rule in rules.iter().copied() { + match rule.dispatch_hint() { + Some(MatcherHint::Exact(idx)) => { + let idx = idx as usize; + if idx >= exact.len() { + exact.resize_with(idx + 1, Vec::new); + } + exact[idx].push(rule); + } + Some(MatcherHint::Category(mask)) => { + category.push((mask, rule)); + } + None => { + fallback.push(rule); + } + } + } + + ParentRuleDispatch { + exact, + category, + fallback, + } +} + +fn cached_rule_dispatch( + rules: &'static [&'static dyn DynArrayParentReduceRule], +) -> &'static ParentRuleDispatch { + let key = DispatchCacheKey::new(rules); + + { + let cache = rule_dispatch_cache().read(); + if let Some(dispatch) = cache.get(&key) { + return match dispatch.downcast_ref::>() { + Some(dispatch) => dispatch, + None => vortex_panic!("rule dispatch cache type mismatch"), + }; + } + } + + let mut cache = rule_dispatch_cache().write(); + if let Some(dispatch) = cache.get(&key) { + return match dispatch.downcast_ref::>() { + Some(dispatch) => dispatch, + None => vortex_panic!("rule dispatch cache type mismatch"), + }; + } + + let dispatch = Box::leak(Box::new(build_rule_dispatch(rules))); + cache.insert(key, dispatch as &'static (dyn Any + Send + Sync)); + dispatch +} + +fn trace_rule_event( + rule: &dyn DynArrayParentReduceRule, + child: ArrayView<'_, V>, + parent: &ArrayRef, + child_idx: usize, + message: &'static str, + rewritten: Option<&ArrayRef>, +) { + if !tracing::enabled!(tracing::Level::TRACE) { + return; + } + + tracing::trace!( + rule = ?rule, + child = %child.array().encoding_id(), + parent = %parent.encoding_id(), + child_idx, + rewritten = rewritten.map(ArrayRef::encoding_id).as_deref(), + "{message}" + ); +} + impl ParentRuleSet { /// Create a new parent rule set with the given rules. /// @@ -174,11 +296,191 @@ impl ParentRuleSet { parent: &ArrayRef, child_idx: usize, ) -> VortexResult> { - for rule in self.rules.iter() { + let dispatch = cached_rule_dispatch(self.rules); + let encoding_idx = parent.encoding_idx() as usize; + let categories = parent.encoding_categories(); + + // Try exact-match rules first (O(1) Vec index). + if let Some(rules) = dispatch.exact.get(encoding_idx) { + for rule in rules { + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: checking rule", + None, + ); + if !rule.matches(parent) { + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: parent mismatch", + None, + ); + continue; + } + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: matched parent", + None, + ); + if let Some(reduced) = rule.reduce_parent(child, parent, child_idx)? { + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: rewrote parent", + Some(&reduced), + ); + // Debug assertions because these checks are already run elsewhere. + #[cfg(debug_assertions)] + { + vortex_error::vortex_ensure!( + reduced.len() == parent.len(), + "Reduced array length mismatch from {:?}\nFrom:\n{}\nTo:\n{}", + rule, + parent.encoding_id(), + reduced.encoding_id() + ); + vortex_error::vortex_ensure!( + reduced.dtype() == parent.dtype(), + "Reduced array dtype mismatch from {:?}\nFrom:\n{}\nTo:\n{}", + rule, + parent.encoding_id(), + reduced.encoding_id() + ); + } + + return Ok(Some(reduced)); + } + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: declined after match", + None, + ); + } + } + + // Try category rules (small flat scan). + for (mask, rule) in &dispatch.category { + if categories & mask == 0 { + continue; + } + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: checking rule", + None, + ); + if !rule.matches(parent) { + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: parent mismatch", + None, + ); + continue; + } + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: matched parent", + None, + ); + if let Some(reduced) = rule.reduce_parent(child, parent, child_idx)? { + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: rewrote parent", + Some(&reduced), + ); + // Debug assertions because these checks are already run elsewhere. + #[cfg(debug_assertions)] + { + vortex_error::vortex_ensure!( + reduced.len() == parent.len(), + "Reduced array length mismatch from {:?}\nFrom:\n{}\nTo:\n{}", + rule, + parent.encoding_id(), + reduced.encoding_id() + ); + vortex_error::vortex_ensure!( + reduced.dtype() == parent.dtype(), + "Reduced array dtype mismatch from {:?}\nFrom:\n{}\nTo:\n{}", + rule, + parent.encoding_id(), + reduced.encoding_id() + ); + } + + return Ok(Some(reduced)); + } + trace_rule_event( + *rule, + child, + parent, + child_idx, + "reduce_parent: declined after match", + None, + ); + } + + // Fallback (wildcards like AnyArray). + for rule in dispatch.fallback.iter().copied() { + trace_rule_event( + rule, + child, + parent, + child_idx, + "reduce_parent: checking rule", + None, + ); if !rule.matches(parent) { + trace_rule_event( + rule, + child, + parent, + child_idx, + "reduce_parent: parent mismatch", + None, + ); continue; } + trace_rule_event( + rule, + child, + parent, + child_idx, + "reduce_parent: matched parent", + None, + ); if let Some(reduced) = rule.reduce_parent(child, parent, child_idx)? { + trace_rule_event( + rule, + child, + parent, + child_idx, + "reduce_parent: rewrote parent", + Some(&reduced), + ); // Debug assertions because these checks are already run elsewhere. #[cfg(debug_assertions)] { @@ -200,6 +502,14 @@ impl ParentRuleSet { return Ok(Some(reduced)); } + trace_rule_event( + rule, + child, + parent, + child_idx, + "reduce_parent: declined after match", + None, + ); } Ok(None) } diff --git a/vortex-array/src/scalar_fn/fns/between/mod.rs b/vortex-array/src/scalar_fn/fns/between/mod.rs index aaec8108808..1c45e9506d9 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -184,7 +184,7 @@ pub struct Between; impl ScalarFnVTable for Between { type Options = BetweenOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.between") } diff --git a/vortex-array/src/scalar_fn/fns/binary/mod.rs b/vortex-array/src/scalar_fn/fns/binary/mod.rs index 83385268397..4fcd4a1ebb6 100644 --- a/vortex-array/src/scalar_fn/fns/binary/mod.rs +++ b/vortex-array/src/scalar_fn/fns/binary/mod.rs @@ -51,7 +51,7 @@ pub struct Binary; impl ScalarFnVTable for Binary { type Options = Operator; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.binary") } diff --git a/vortex-array/src/scalar_fn/fns/case_when.rs b/vortex-array/src/scalar_fn/fns/case_when.rs index f30a17ee580..ac0cc220d8e 100644 --- a/vortex-array/src/scalar_fn/fns/case_when.rs +++ b/vortex-array/src/scalar_fn/fns/case_when.rs @@ -78,7 +78,7 @@ pub struct CaseWhen; impl ScalarFnVTable for CaseWhen { type Options = CaseWhenOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.case_when") } diff --git a/vortex-array/src/scalar_fn/fns/cast/mod.rs b/vortex-array/src/scalar_fn/fns/cast/mod.rs index 66a257d340b..5668b333abc 100644 --- a/vortex-array/src/scalar_fn/fns/cast/mod.rs +++ b/vortex-array/src/scalar_fn/fns/cast/mod.rs @@ -52,7 +52,7 @@ pub struct Cast; impl ScalarFnVTable for Cast { type Options = DType; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.cast") } diff --git a/vortex-array/src/scalar_fn/fns/dynamic.rs b/vortex-array/src/scalar_fn/fns/dynamic.rs index 39b97aa5549..51de4ea4c25 100644 --- a/vortex-array/src/scalar_fn/fns/dynamic.rs +++ b/vortex-array/src/scalar_fn/fns/dynamic.rs @@ -45,7 +45,7 @@ pub struct DynamicComparison; impl ScalarFnVTable for DynamicComparison { type Options = DynamicComparisonExpr; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.dynamic") } diff --git a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs index 656029bf82d..121fb51aac8 100644 --- a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs +++ b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs @@ -38,7 +38,7 @@ pub struct FillNull; impl ScalarFnVTable for FillNull { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.fill_null") } diff --git a/vortex-array/src/scalar_fn/fns/get_item.rs b/vortex-array/src/scalar_fn/fns/get_item.rs index 353ebc0925b..18b21ba82c7 100644 --- a/vortex-array/src/scalar_fn/fns/get_item.rs +++ b/vortex-array/src/scalar_fn/fns/get_item.rs @@ -43,7 +43,7 @@ pub struct GetItem; impl ScalarFnVTable for GetItem { type Options = FieldName; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.get_item") } diff --git a/vortex-array/src/scalar_fn/fns/is_null.rs b/vortex-array/src/scalar_fn/fns/is_null.rs index dd3ef3366c6..6773974a274 100644 --- a/vortex-array/src/scalar_fn/fns/is_null.rs +++ b/vortex-array/src/scalar_fn/fns/is_null.rs @@ -33,7 +33,7 @@ pub struct IsNull; impl ScalarFnVTable for IsNull { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.is_null") } diff --git a/vortex-array/src/scalar_fn/fns/like/mod.rs b/vortex-array/src/scalar_fn/fns/like/mod.rs index da52f730061..477b025e76e 100644 --- a/vortex-array/src/scalar_fn/fns/like/mod.rs +++ b/vortex-array/src/scalar_fn/fns/like/mod.rs @@ -61,7 +61,7 @@ pub struct Like; impl ScalarFnVTable for Like { type Options = LikeOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.like") } diff --git a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs index b4d6c3e6bc4..4d2bfabca86 100644 --- a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs +++ b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs @@ -59,7 +59,7 @@ pub struct ListContains; impl ScalarFnVTable for ListContains { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.list.contains") } diff --git a/vortex-array/src/scalar_fn/fns/literal.rs b/vortex-array/src/scalar_fn/fns/literal.rs index 97d8089a5bf..954ca7a3afb 100644 --- a/vortex-array/src/scalar_fn/fns/literal.rs +++ b/vortex-array/src/scalar_fn/fns/literal.rs @@ -37,7 +37,7 @@ pub struct Literal; impl ScalarFnVTable for Literal { type Options = Scalar; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.literal") } diff --git a/vortex-array/src/scalar_fn/fns/mask/mod.rs b/vortex-array/src/scalar_fn/fns/mask/mod.rs index eaf83307b35..376c502e0e1 100644 --- a/vortex-array/src/scalar_fn/fns/mask/mod.rs +++ b/vortex-array/src/scalar_fn/fns/mask/mod.rs @@ -45,7 +45,7 @@ pub struct Mask; impl ScalarFnVTable for Mask { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.mask") } diff --git a/vortex-array/src/scalar_fn/fns/merge.rs b/vortex-array/src/scalar_fn/fns/merge.rs index 01445eb6c54..2ef3559dfbf 100644 --- a/vortex-array/src/scalar_fn/fns/merge.rs +++ b/vortex-array/src/scalar_fn/fns/merge.rs @@ -50,7 +50,7 @@ pub struct Merge; impl ScalarFnVTable for Merge { type Options = DuplicateHandling; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.merge") } diff --git a/vortex-array/src/scalar_fn/fns/not/mod.rs b/vortex-array/src/scalar_fn/fns/not/mod.rs index c70c8794fe6..11567f59246 100644 --- a/vortex-array/src/scalar_fn/fns/not/mod.rs +++ b/vortex-array/src/scalar_fn/fns/not/mod.rs @@ -35,7 +35,7 @@ pub struct Not; impl ScalarFnVTable for Not { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.not") } diff --git a/vortex-array/src/scalar_fn/fns/pack.rs b/vortex-array/src/scalar_fn/fns/pack.rs index 13626bb107b..54c099a35ab 100644 --- a/vortex-array/src/scalar_fn/fns/pack.rs +++ b/vortex-array/src/scalar_fn/fns/pack.rs @@ -54,7 +54,7 @@ impl Display for PackOptions { impl ScalarFnVTable for Pack { type Options = PackOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.pack") } diff --git a/vortex-array/src/scalar_fn/fns/root.rs b/vortex-array/src/scalar_fn/fns/root.rs index 7e04746db19..cf89398523f 100644 --- a/vortex-array/src/scalar_fn/fns/root.rs +++ b/vortex-array/src/scalar_fn/fns/root.rs @@ -29,7 +29,7 @@ pub struct Root; impl ScalarFnVTable for Root { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.root") } diff --git a/vortex-array/src/scalar_fn/fns/select.rs b/vortex-array/src/scalar_fn/fns/select.rs index 2f93df5e789..954a82d75b2 100644 --- a/vortex-array/src/scalar_fn/fns/select.rs +++ b/vortex-array/src/scalar_fn/fns/select.rs @@ -47,7 +47,7 @@ pub struct Select; impl ScalarFnVTable for Select { type Options = FieldSelection; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.select") } diff --git a/vortex-array/src/scalar_fn/fns/zip/mod.rs b/vortex-array/src/scalar_fn/fns/zip/mod.rs index e166148965a..e872d54cf72 100644 --- a/vortex-array/src/scalar_fn/fns/zip/mod.rs +++ b/vortex-array/src/scalar_fn/fns/zip/mod.rs @@ -45,7 +45,7 @@ pub struct Zip; impl ScalarFnVTable for Zip { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.zip") } diff --git a/vortex-array/src/scalar_fn/vtable.rs b/vortex-array/src/scalar_fn/vtable.rs index c9588e8aa13..b6fcda56b3a 100644 --- a/vortex-array/src/scalar_fn/vtable.rs +++ b/vortex-array/src/scalar_fn/vtable.rs @@ -41,8 +41,18 @@ pub trait ScalarFnVTable: 'static + Sized + Clone + Send + Sync { /// Options for this expression. type Options: 'static + Send + Sync + Clone + Debug + Display + PartialEq + Eq + Hash; + /// Returns the compile-time string ID for this scalar function type. + /// + /// All scalar function implementations return a static string literal from this method. + /// The instance method [`id`](Self::id) delegates here by default. + fn static_id() -> ScalarFnId + where + Self: Sized; + /// Returns the ID of the scalar function vtable. - fn id(&self) -> ScalarFnId; + fn id(&self) -> ScalarFnId { + Self::static_id() + } /// Serialize the options for this expression. /// diff --git a/vortex-layout/public-api.lock b/vortex-layout/public-api.lock index cc11334cb0c..a91cc8e39b4 100644 --- a/vortex-layout/public-api.lock +++ b/vortex-layout/public-api.lock @@ -610,10 +610,10 @@ pub fn vortex_layout::layouts::row_idx::RowIdx::execute(&self, _options: &Self:: pub fn vortex_layout::layouts::row_idx::RowIdx::fmt_sql(&self, _options: &Self::Options, _expr: &vortex_array::expr::expression::Expression, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn vortex_layout::layouts::row_idx::RowIdx::id(&self) -> vortex_array::scalar_fn::ScalarFnId - pub fn vortex_layout::layouts::row_idx::RowIdx::return_dtype(&self, _options: &Self::Options, _arg_dtypes: &[vortex_array::dtype::DType]) -> vortex_error::VortexResult +pub fn vortex_layout::layouts::row_idx::RowIdx::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub struct vortex_layout::layouts::row_idx::RowIdxLayoutReader impl vortex_layout::layouts::row_idx::RowIdxLayoutReader diff --git a/vortex-layout/src/layouts/row_idx/expr.rs b/vortex-layout/src/layouts/row_idx/expr.rs index c235193ac6c..d42ab084218 100644 --- a/vortex-layout/src/layouts/row_idx/expr.rs +++ b/vortex-layout/src/layouts/row_idx/expr.rs @@ -24,7 +24,7 @@ pub struct RowIdx; impl ScalarFnVTable for RowIdx { type Options = EmptyOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.row_idx") } diff --git a/vortex-tensor/public-api.lock b/vortex-tensor/public-api.lock index e316e36de41..c8a69194314 100644 --- a/vortex-tensor/public-api.lock +++ b/vortex-tensor/public-api.lock @@ -376,14 +376,14 @@ pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::execute(& pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::fmt_sql(&self, _options: &Self::Options, expr: &vortex_array::expr::expression::Expression, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::id(&self) -> vortex_array::scalar_fn::ScalarFnId - pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::is_fallible(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::is_null_sensitive(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::return_dtype(&self, _options: &Self::Options, arg_dtypes: &[vortex_array::dtype::DType]) -> vortex_error::VortexResult +pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_tensor::scalar_fns::cosine_similarity::CosineSimilarity::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::expression::Expression) -> vortex_error::VortexResult> pub mod vortex_tensor::scalar_fns::inner_product @@ -412,14 +412,14 @@ pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::execute(&self, _o pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::fmt_sql(&self, _options: &Self::Options, expr: &vortex_array::expr::expression::Expression, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::id(&self) -> vortex_array::scalar_fn::ScalarFnId - pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::is_fallible(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::is_null_sensitive(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::return_dtype(&self, _options: &Self::Options, arg_dtypes: &[vortex_array::dtype::DType]) -> vortex_error::VortexResult +pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_tensor::scalar_fns::inner_product::InnerProduct::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::expression::Expression) -> vortex_error::VortexResult> pub mod vortex_tensor::scalar_fns::l2_denorm @@ -448,14 +448,14 @@ pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::execute(&self, _options: pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::fmt_sql(&self, _options: &Self::Options, expr: &vortex_array::expr::expression::Expression, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::id(&self) -> vortex_array::scalar_fn::ScalarFnId - pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::is_fallible(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::is_null_sensitive(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::return_dtype(&self, _options: &Self::Options, arg_dtypes: &[vortex_array::dtype::DType]) -> vortex_error::VortexResult +pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_tensor::scalar_fns::l2_denorm::L2Denorm::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::expression::Expression) -> vortex_error::VortexResult> pub mod vortex_tensor::scalar_fns::l2_norm @@ -484,14 +484,14 @@ pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::execute(&self, _options: &Sel pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::fmt_sql(&self, _options: &Self::Options, expr: &vortex_array::expr::expression::Expression, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::id(&self) -> vortex_array::scalar_fn::ScalarFnId - pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::is_fallible(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::is_null_sensitive(&self, _options: &Self::Options) -> bool pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::return_dtype(&self, _options: &Self::Options, arg_dtypes: &[vortex_array::dtype::DType]) -> vortex_error::VortexResult +pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::static_id() -> vortex_array::scalar_fn::ScalarFnId + pub fn vortex_tensor::scalar_fns::l2_norm::L2Norm::validity(&self, _options: &Self::Options, expression: &vortex_array::expr::expression::Expression) -> vortex_error::VortexResult> pub enum vortex_tensor::scalar_fns::ApproxOptions diff --git a/vortex-tensor/src/scalar_fns/cosine_similarity.rs b/vortex-tensor/src/scalar_fns/cosine_similarity.rs index 391ca57bc19..708220bfe02 100644 --- a/vortex-tensor/src/scalar_fns/cosine_similarity.rs +++ b/vortex-tensor/src/scalar_fns/cosine_similarity.rs @@ -73,7 +73,7 @@ impl CosineSimilarity { impl ScalarFnVTable for CosineSimilarity { type Options = ApproxOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.tensor.cosine_similarity") } diff --git a/vortex-tensor/src/scalar_fns/inner_product.rs b/vortex-tensor/src/scalar_fns/inner_product.rs index 7d07af09404..6dc4cc0b3b4 100644 --- a/vortex-tensor/src/scalar_fns/inner_product.rs +++ b/vortex-tensor/src/scalar_fns/inner_product.rs @@ -76,7 +76,7 @@ impl InnerProduct { impl ScalarFnVTable for InnerProduct { type Options = ApproxOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.tensor.inner_product") } diff --git a/vortex-tensor/src/scalar_fns/l2_denorm.rs b/vortex-tensor/src/scalar_fns/l2_denorm.rs index 7db9abccd9d..99c04f2d2d6 100644 --- a/vortex-tensor/src/scalar_fns/l2_denorm.rs +++ b/vortex-tensor/src/scalar_fns/l2_denorm.rs @@ -82,7 +82,7 @@ impl L2Denorm { impl ScalarFnVTable for L2Denorm { type Options = ApproxOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::new_ref("vortex.tensor.l2_denorm") } diff --git a/vortex-tensor/src/scalar_fns/l2_norm.rs b/vortex-tensor/src/scalar_fns/l2_norm.rs index c867ceeb1aa..ead12409417 100644 --- a/vortex-tensor/src/scalar_fns/l2_norm.rs +++ b/vortex-tensor/src/scalar_fns/l2_norm.rs @@ -70,7 +70,7 @@ impl L2Norm { impl ScalarFnVTable for L2Norm { type Options = ApproxOptions; - fn id(&self) -> ScalarFnId { + fn static_id() -> ScalarFnId { ScalarFnId::from("vortex.tensor.l2_norm") }