Parent rewrites in the executor currently come from two sources: kernels registered on ArrayKernels (looked up via find_execute_parent(parent_id, child_id)) and the per-encoding VTable::execute_parent.
We should only have ArrayKernels, so we can customize the execution of any array, see #7588
Concretely this is two pieces of work.
Move each execute_parent kernels to a registered ArrayKernels.
Core arrays (vortex-array/src/arrays/)
Encodings (encodings/)
Remove the VTable::execute_parent
Parent rewrites in the executor currently come from two sources: kernels registered on
ArrayKernels(looked upvia find_execute_parent(parent_id, child_id)) and the per-encodingVTable::execute_parent.We should only have
ArrayKernels, so we can customize the execution of any array, see #7588Concretely this is two pieces of work.
Move each execute_parent kernels to a registered
ArrayKernels.Core arrays (
vortex-array/src/arrays/)bool/vtable/mod.rs:177chunked/vtable/mod.rs:266decimal/vtable/mod.rs:196dict/vtable/mod.rs:208extension/vtable/mod.rs:179filter/vtable.rs:174fixed_size_list/vtable/mod.rs:87list/vtable/mod.rs:195listview/vtable/mod.rs:223patched/vtable/mod.rs:304primitive/vtable/mod.rs:195struct_/vtable/mod.rs:196varbin/vtable/mod.rs:185varbinview/vtable/mod.rs:220list/vtable/mod.rs:195listview/vtable/mod.rs:223patched/vtable/mod.rs:304primitive/vtable/mod.rs:195struct_/vtable/mod.rs:196varbin/vtable/mod.rs:185varbinview/vtable/mod.rs:220variant/vtable/mod.rs:196Encodings (
encodings/)alp/src/alp/array.rs:192alp/src/alp_rd/array.rs:311bytebool/src/array.rs:161datetime-parts/src/array.rs:204decimal-byte-parts/src/decimal_byte_parts/mod.rs:169fastlanes/src/bitpacking/vtable/mod.rs:271fastlanes/src/for/vtable/mod.rs:154fastlanes/src/rle/vtable/mod.rs:196fsst/src/array.rs:316experimental/onpair/src/array.rs:502parquet-variant/src/vtable.rs:284runend/src/array.rs:175(verify the FilterKernel parity case)sequence/src/array.rs:334sparse/src/lib.rs:297zigzag/src/array.rs:147Remove the VTable::execute_parent
execute_parentoverrides (grep is clean)execute_parent_for_childand remove the trait method (
vtable/mod.rs:189)