Skip to content

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

@joseph-isaacs

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions