use serde::{Deserialize, Serialize};
pub const SYS_FUNCTIONS: &str = "system.functions";
pub const CREATE_FUNCTIONS_SQL: &str = r#"
CREATE TABLE IF NOT EXISTS system.functions (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
schema TEXT,
name TEXT NOT NULL,
parameters TEXT NOT NULL,
return_type TEXT NOT NULL,
language TEXT NOT NULL,
code TEXT NOT NULL,
UNIQUE(schema, name)
);
"#;
pub fn is_functions_table(table_name: &str) -> bool {
table_name.eq_ignore_ascii_case(SYS_FUNCTIONS)
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StoredParameter {
pub name: String,
pub data_type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StoredFunction {
pub id: i64,
pub schema: Option<String>,
pub name: String,
pub parameters: Vec<StoredParameter>, pub return_type: String,
pub language: String,
pub code: String,
}