Expand description
Function type definitions
This module provides types for function-related DDL operations:
FunctionDef: Function definition for CREATE FUNCTIONFunctionParameter: Function parameter definition (name, type, mode)FunctionLanguage: Programming language for function bodyFunctionBehavior: Function volatility categoryFunctionSecurity: Security context for function execution
§Examples
use reinhardt_query::types::function::{FunctionDef, FunctionLanguage, FunctionBehavior};
// CREATE FUNCTION my_func() RETURNS integer LANGUAGE SQL AS 'SELECT 1'
let func = FunctionDef::new("my_func")
.returns("integer")
.language(FunctionLanguage::Sql)
.body("SELECT 1");
// CREATE OR REPLACE FUNCTION my_func(a integer, b text)
// RETURNS integer LANGUAGE PLPGSQL AS '...'
let func = FunctionDef::new("my_func")
.or_replace(true)
.add_parameter("a", "integer")
.add_parameter("b", "text")
.returns("integer")
.language(FunctionLanguage::PlPgSql)
.behavior(FunctionBehavior::Immutable)
.body("BEGIN RETURN a + LENGTH(b); END;");Structs§
- Function
Def - Function definition for CREATE FUNCTION
- Function
Parameter - Function parameter definition
Enums§
- Function
Behavior - Function volatility category
- Function
Language - Programming language for function body
- Function
Security - Security context for function execution
- Parameter
Mode - Parameter mode (IN, OUT, INOUT, VARIADIC)