Skip to content

Migrate all VTable::execute_parent rewrites onto the ArrayKernels registry #8445

Description

@joseph-isaacs

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/)

  • bool — bool/vtable/mod.rs:177
  • chunked — chunked/vtable/mod.rs:266
  • decimal — decimal/vtable/mod.rs:196
  • dict — dict/vtable/mod.rs:208
  • extension — extension/vtable/mod.rs:179
  • filter — filter/vtable.rs:174
  • fixed_size_list — fixed_size_list/vtable/mod.rs:87
  • list — list/vtable/mod.rs:195
  • listview — listview/vtable/mod.rs:223
  • patched — patched/vtable/mod.rs:304
  • primitive — primitive/vtable/mod.rs:195
  • struct_ — struct_/vtable/mod.rs:196
  • varbin — varbin/vtable/mod.rs:185
  • varbinview — varbinview/vtable/mod.rs:220
  • list — list/vtable/mod.rs:195
  • listview — listview/vtable/mod.rs:223
  • patched — patched/vtable/mod.rs:304
  • primitive — primitive/vtable/mod.rs:195
  • struct_ — struct_/vtable/mod.rs:196
  • varbin — varbin/vtable/mod.rs:185
  • varbinview — varbinview/vtable/mod.rs:220
  • variant — variant/vtable/mod.rs:196

Encodings (encodings/)

  • alp — alp/src/alp/array.rs:192
  • alp_rd — alp/src/alp_rd/array.rs:311
  • bytebool — bytebool/src/array.rs:161
  • datetime-parts — datetime-parts/src/array.rs:204
  • decimal-byte-parts — decimal-byte-parts/src/decimal_byte_parts/mod.rs:169
  • fastlanes/bitpacking — fastlanes/src/bitpacking/vtable/mod.rs:271
  • fastlanes/for — fastlanes/src/for/vtable/mod.rs:154
  • fastlanes/rle — fastlanes/src/rle/vtable/mod.rs:196
  • fsst — fsst/src/array.rs:316
  • onpair (experimental) — experimental/onpair/src/array.rs:502
  • parquet-variant — parquet-variant/src/vtable.rs:284
  • runend — runend/src/array.rs:175 (verify the FilterKernel parity case)
  • sequence — sequence/src/array.rs:334
  • sparse — sparse/src/lib.rs:297
  • zigzag — zigzag/src/array.rs:147

Remove the VTable::execute_parent

  • No remaining VTable execute_parent overrides (grep is clean)
  • Ready for issue part (2): drop the method fallback in execute_parent_for_child
    and remove the trait method (vtable/mod.rs:189)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions