Expand description
Scalar function vtable machinery.
This module contains the ScalarFnVTable trait and all built-in scalar function
implementations. Expressions (crate::expr::Expression) reference scalar functions
at each node.
Strict functions with row-at-a-time kernels can implement unstable::row::RowFn. It handles
decoding, constants, null propagation, output construction, and validity. This API requires the
unstable_row_fns feature and has no compatibility guarantees. Implement ScalarFnVTable
directly for columnar kernels and functions that alias an input or can produce null from valid
inputs.
Modules§
Structs§
- Array
Reduce Node - A
ReduceNodeover an array tree. - Empty
Options - Expression
Reduce Node - A
ReduceNodeover an expression tree, typed within a scope. - Foreign
Scalar FnOptions - Options payload for a foreign scalar function.
- Foreign
Scalar FnVTable - Scalar function placeholder used when deserializing an unknown scalar function ID.
- Scalar
FnOptions - An opaque handle to expression options.
- Scalar
FnRef - A type-erased scalar function, pairing a vtable with bound options behind a trait object.
- Scalar
FnSignature - Information about the signature of an expression.
- Typed
Scalar FnInstance - A typed scalar function instance, parameterized by a concrete
ScalarFnVTable. - VecExecution
Args - A concrete
ExecutionArgsbacked by aVec<ArrayRef>.
Enums§
- Arity
- The arity (number of arguments) of a function.
Traits§
- Execution
Args - Arguments for expression execution.
- Reduce
Node - A node used for implementing abstract reduction rules over a tree of scalar functions.
- Scalar
FnPlugin - Registry trait for ID-based deserialization of scalar functions.
- Scalar
FnVTable - This trait defines the interface for scalar function vtables, including methods for serialization, deserialization, validation, child naming, return type computation, and evaluation.
- Scalar
FnVTable Ext - Factory functions for vtables.
- Simplify
Ctx - Context for simplification.
Functions§
- is_
negative_ cost - A scalar function has a negative cost if applying it to an array and canonicalizing is cheaper than canonicalizing an array and applying it.
Type Aliases§
- Child
Name - A reference to the name of a child expression.
- Scalar
FnId - A unique identifier for a scalar function.
- Scalar
FnPlugin Ref - Reference-counted pointer to a scalar function plugin.