Expand description
Session-scoped registry for optimizer kernels.
ArrayKernels stores function pointers that participate in array optimization and execution
without adding rules or kernels to an encoding vtable. The optimizer consults it for
parent-reduce rewrites before the child encoding’s static PARENT_RULES, and the executor
consults it for parent execution. A registered function can therefore add support for an
extension encoding or take precedence over a built-in rule. When several functions are
registered for the same key and kind, they are tried in registration order until one applies.
Kernel entries are addressed by (outer_id, child_id). For parent-reduce and execute-parent
kernels, outer_id is the id returned by the parent array’s encoding_id() and child_id is
the child array’s encoding_id(). For ScalarFn parents, the
parent id is the scalar function id.
Because registered functions have different signatures for each kernel kind, the registry maintains one storage map per function type rather than a single type-erased map.
KernelSession is the session variable that owns this registry. Its Default
implementation installs vortex-array’s built-in parent-reduce and execute-parent kernels, so a
session built with KernelSession participates in the same optimizations and fused execution
as the built-in encodings.
Structs§
- Array
Kernels - Session-scoped registry of optimizer kernel functions.
- Kernel
Session - Session-scoped holder for the optimizer kernel registry.
Traits§
- Array
Kernels Ext - Extension trait for accessing the optimizer kernel registry from a
VortexSession. - DynExecute
Parent Kernel - Type-erased execute-parent kernel stored in the session registry.
Type Aliases§
- Execute
Parent Fn - Function pointer for a plugin-provided parent execution.
- Reduce
Parent Fn - Function pointer for a plugin-provided parent-reduce rewrite.