pub struct FunctionDef {Show 14 fields
pub name: String,
pub args_repr: String,
pub returns: String,
pub language: String,
pub body: String,
pub owner: Option<String>,
pub acl: Vec<AclItem>,
pub volatility: u8,
pub strict: bool,
pub security_definer: bool,
pub leakproof: bool,
pub parallel: u8,
pub cost: Option<f64>,
pub rows: Option<f64>,
}Expand description
v7.12.4 — catalogued user-defined function. body is the raw
source text between $$ ... $$; the engine re-parses it on
invocation. This keeps the storage codec stable when the
PL/pgSQL surface grows (no breaking-change risk on the disk
format).
Fields§
§name: String§args_repr: StringDisplay form of the argument list, e.g.
"(name TEXT, ts TIMESTAMP)". Empty "()" for the trigger
function shape. Parser-side canonicalised before storage.
returns: StringDisplay form of the return type, e.g. "TRIGGER" /
"INT" / "SETOF text". The engine special-cases
"TRIGGER" (case-insensitive) to gate trigger-only
semantics (NEW/OLD).
language: StringLANGUAGE clause, lowercased. "plpgsql" / "sql".
body: StringSource body of the function. PL/pgSQL: includes the
surrounding BEGIN ... END;. SQL: includes the
statement(s). The engine re-parses on invocation; bad
bodies surface as a parse error at CALL time, not CREATE.
owner: Option<String>v7.39 (read01 round 61) — the role that ran CREATE FUNCTION.
acl: Vec<AclItem>v7.39 (read01 round 61) — explicit GRANTs (PG pg_proc.proacl). EMPTY
is NOT “nobody may call it”: PG grants EXECUTE to PUBLIC by default, and
leaves proacl NULL to say so. The list materialises on the first
GRANT / REVOKE.
volatility: u8v7.39 (round 322, V46) — IMMUTABLE / STRICT / PARALLEL SAFE /
SECURITY DEFINER / LEAKPROOF / COST / ROWS. strict is the
only one with execution semantics today (a NULL argument yields a
NULL result without running the body); the rest are recorded so
pg_get_functiondef and pg_proc report what was declared.
strict: bool§security_definer: bool§leakproof: bool§parallel: u8§cost: Option<f64>§rows: Option<f64>Trait Implementations§
Source§impl Clone for FunctionDef
impl Clone for FunctionDef
Source§fn clone(&self) -> FunctionDef
fn clone(&self) -> FunctionDef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more