pub struct ExternalFunction {
pub name: Vec<u8>,
pub arity: i32,
pub aggregate: bool,
pub flags: FunctionFlags,
}Expand description
A function an application registered, as the binder needs to see it.
Only what resolution needs: a name, how many arguments it takes, whether it reduces a group, and what it promises about itself. What it does is the machine’s business.
The flags are here because the binder is where the promise is kept
(task-1972). Registry::authorize_function had no caller, so
direct_only, innocuous and PRAGMA trusted_schema were a policy with a
passing unit test and no effect on the engine: a CHECK, an index
expression or a generated column could name any registered function whatever
its flags. inillucent-sql sits below inillucent-ext and cannot reach the
registry, so what the registry knows travels down here with the name.
Fields§
§name: Vec<u8>The folded name.
arity: i32How many arguments it takes, or -1 for any number.
aggregate: boolWhether it reduces a group rather than a row.
flags: FunctionFlagsWhat it promises about itself, which decides whether a schema may name it.