Skip to main content

Module function

Module function 

Source
Expand description

Function type definitions

This module provides types for function-related DDL operations:

§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§

FunctionDef
Function definition for CREATE FUNCTION
FunctionParameter
Function parameter definition

Enums§

FunctionBehavior
Function volatility category
FunctionLanguage
Programming language for function body
FunctionSecurity
Security context for function execution
ParameterMode
Parameter mode (IN, OUT, INOUT, VARIADIC)