Module sql::func[][src]

Expand description

TBD: Currently, sql::func handles matching arguments to their respective built-in functions (for most built-in functions, at least).

Macros

Constructs builtin function map.

Functions using this macro should be transformed/planned away before reaching function selection code, but still need to be present in the catalog during planning.

Provides shorthand for converting Vec<ScalarType> into Vec<ParamType>.

Structs

Tracks candidate implementations.

Describes a single function’s implementation.

Describes how each implementation should be represented in the catalog.

Correlates an operator with all of its implementations.

Builds an expression that evaluates a scalar function on the provided input expressions.

Correlates a built-in function name to its implementations.

Enums

A specifier for a function or an operator.

Describes possible types of function parameters.

Describes parameter types; these are essentially just ScalarType with some added flexibility.

Traits

Functions

Coerces concrete arguments for a function according to the abstract parameters specified in the function definition.

Finds an exact match based on the arguments, or, if no exact match, finds the best match available. Patterned after PostgreSQL’s type conversion matching algorithm.

Resolves the operator to a set of function implementations.

Selects the best implementation given the provided args using a process similar to PostgreSQL’s parser, and returns the ScalarExpr to invoke that function.

Backing implementation for sql_impl_func and sql_impl_cast. See those functions for details.