Skip to main content

gluesql_core/query_builder/
transaction.rs

1use crate::{ast::Statement, plan::StatementPlan};
2
3pub fn begin() -> StatementPlan {
4    Statement::StartTransaction.into()
5}
6pub fn commit() -> StatementPlan {
7    Statement::Commit.into()
8}
9pub fn rollback() -> StatementPlan {
10    Statement::Rollback.into()
11}
12
13#[cfg(test)]
14mod tests {
15    use crate::query_builder::{begin, commit, rollback, test};
16
17    #[test]
18    fn transaction() {
19        let actual = begin();
20        let expected = "START TRANSACTION";
21        test(&Ok(actual), expected);
22
23        let actual = commit();
24        let expected = "COMMIT";
25        test(&Ok(actual), expected);
26
27        let actual = rollback();
28        let expected = "ROLLBACK";
29        test(&Ok(actual), expected);
30    }
31}