sqlite3-parser: box the create table body

This commit is contained in:
Jussi Saurio 2025-02-09 12:42:53 +02:00
parent d177f6195b
commit 358fda2ec7
5 changed files with 5 additions and 5 deletions

View file

@ -127,7 +127,7 @@ impl Database {
let Stmt::CreateTable { body, .. } = stmt else {
return ResultCode::Error;
};
let Ok(columns) = columns_from_create_table_body(body) else {
let Ok(columns) = columns_from_create_table_body(*body) else {
return ResultCode::Error;
};
let vtab_module = self.vtab_modules.get(name).unwrap().clone();

View file

@ -150,7 +150,7 @@ impl BTreeTable {
let cmd = parser.next()?;
match cmd {
Some(Cmd::Stmt(Stmt::CreateTable { tbl_name, body, .. })) => {
create_table(tbl_name, body, root_page)
create_table(tbl_name, *body, root_page)
}
_ => todo!("Expected CREATE TABLE statement"),
}

View file

@ -67,7 +67,7 @@ pub fn translate(
bail_parse_error!("TEMPORARY table not supported yet");
}
translate_create_table(query_mode, tbl_name, body, if_not_exists, schema)?
translate_create_table(query_mode, tbl_name, *body, if_not_exists, schema)?
}
ast::Stmt::CreateTrigger { .. } => bail_parse_error!("CREATE TRIGGER not supported yet"),
ast::Stmt::CreateView { .. } => bail_parse_error!("CREATE VIEW not supported yet"),

View file

@ -112,7 +112,7 @@ pub enum Stmt {
/// table name
tbl_name: QualifiedName,
/// table body
body: CreateTableBody,
body: Box<CreateTableBody>,
},
/// `CREATE TRIGGER`
CreateTrigger {

View file

@ -109,7 +109,7 @@ cmd ::= ROLLBACK trans_opt(Y) TO savepoint_opt nm(X). {
///////////////////// The CREATE TABLE statement ////////////////////////////
//
cmd ::= createkw temp(T) TABLE ifnotexists(E) fullname(Y) create_table_args(X). {
self.ctx.stmt = Some(Stmt::CreateTable{ temporary: T, if_not_exists: E, tbl_name: Y, body: X });
self.ctx.stmt = Some(Stmt::CreateTable{ temporary: T, if_not_exists: E, tbl_name: Y, body: Box::new(X) });
}
createkw(A) ::= CREATE(A).