vibesql_executor/advanced_objects/
collations.rs

1//! Executor for COLLATION objects (SQL:1999)
2
3use vibesql_ast::*;
4use vibesql_storage::Database;
5
6use crate::errors::ExecutorError;
7
8/// Execute CREATE COLLATION statement
9pub fn execute_create_collation(
10    stmt: &CreateCollationStmt,
11    db: &mut Database,
12) -> Result<(), ExecutorError> {
13    db.catalog.create_collation(
14        stmt.collation_name.clone(),
15        stmt.character_set.clone(),
16        stmt.source_collation.clone(),
17        stmt.pad_space,
18    )?;
19    Ok(())
20}
21
22/// Execute DROP COLLATION statement
23pub fn execute_drop_collation(
24    stmt: &DropCollationStmt,
25    db: &mut Database,
26) -> Result<(), ExecutorError> {
27    db.catalog.drop_collation(&stmt.collation_name)?;
28    Ok(())
29}