Files
turso/core/translate/rollback.rs
2025-07-03 12:36:48 +02:00

28 lines
700 B
Rust

use turso_sqlite3_parser::ast::Name;
use crate::{
schema::Schema,
translate::emitter::TransactionMode,
vdbe::{builder::ProgramBuilder, insn::Insn},
Result, SymbolTable,
};
pub fn translate_rollback(
_schema: &Schema,
_syms: &SymbolTable,
mut program: ProgramBuilder,
txn_name: Option<Name>,
savepoint_name: Option<Name>,
) -> Result<ProgramBuilder> {
assert!(
txn_name.is_none() && savepoint_name.is_none(),
"txn_name and savepoint not supported yet"
);
program.emit_insn(Insn::AutoCommit {
auto_commit: true,
rollback: true,
});
program.epilogue_maybe_rollback(TransactionMode::None, true);
Ok(program)
}