vibesql_executor/advanced_objects/
assertions.rs1use vibesql_ast::*;
4use vibesql_storage::Database;
5
6use crate::errors::ExecutorError;
7
8pub fn execute_create_assertion(
10 stmt: &CreateAssertionStmt,
11 db: &mut Database,
12) -> Result<(), ExecutorError> {
13 use vibesql_catalog::Assertion;
14
15 let assertion = Assertion::new(stmt.assertion_name.clone(), (*stmt.check_condition).clone());
16
17 db.catalog.create_assertion(assertion)?;
18 Ok(())
19}
20
21pub fn execute_drop_assertion(
23 stmt: &DropAssertionStmt,
24 db: &mut Database,
25) -> Result<(), ExecutorError> {
26 db.catalog.drop_assertion(&stmt.assertion_name, stmt.cascade)?;
27 Ok(())
28}