reinhardt_query/query/function.rs
1//! Function DDL statement builders
2//!
3//! This module provides builders for function-related DDL statements:
4//!
5//! - [`CreateFunctionStatement`]: CREATE FUNCTION statement
6//! - [`AlterFunctionStatement`]: ALTER FUNCTION statement
7//! - [`DropFunctionStatement`]: DROP FUNCTION statement
8//!
9//! ## Backend Support
10//!
11//! | Backend | CREATE | ALTER | DROP |
12//! |---------|--------|-------|------|
13//! | PostgreSQL | ✅ | ✅ | ✅ |
14//! | MySQL | ✅ | ✅ | ✅ |
15//! | SQLite | ❌ (panics) | ❌ (panics) | ❌ (panics) |
16//! | CockroachDB | ✅ | ✅ | ✅ |
17//!
18//! ## PostgreSQL vs MySQL Differences
19//!
20//! - **Language**: PostgreSQL supports PL/pgSQL, MySQL has its own syntax
21//! - **Dollar quotes**: PostgreSQL uses `$$` for function body, MySQL uses BEGIN/END
22//! - **Parameter placeholders**: PostgreSQL uses `$1, $2`, MySQL uses parameters directly
23
24pub mod alter_function;
25pub mod create_function;
26pub mod drop_function;
27
28pub use alter_function::AlterFunctionStatement;
29pub use create_function::CreateFunctionStatement;
30pub use drop_function::DropFunctionStatement;