diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..4a3f4a70 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "rust-analyzer.linkedProjects": [ + ".\\Cargo.toml", + ".\\Cargo.toml" + ] +} diff --git a/src/ast/mod.rs b/src/ast/mod.rs index ab5f724e..b1c95973 100644 --- a/src/ast/mod.rs +++ b/src/ast/mod.rs @@ -3,6 +3,7 @@ pub mod dcl; pub mod ddl; pub mod dml; pub mod other; +pub mod tcl; pub mod types; use crate::ast::{ @@ -19,11 +20,14 @@ use crate::ast::{ }, }; +use self::tcl::{BeginTransactionQuery, CommitQuery, RollbackQuery}; + #[derive(Clone, Debug, PartialEq)] pub enum SQLStatement { DDL(DDLStatement), DML(DMLStatement), DCL(DCLStatement), + TCL(TCLStatement), Other(OtherStatement), } @@ -56,3 +60,10 @@ pub enum OtherStatement { ShowTables(ShowTablesQuery), DescTable(DescTableQuery), } + +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum TCLStatement { + BeginTransaction(BeginTransactionQuery), + Commit(CommitQuery), + Rollback(RollbackQuery), +} diff --git a/src/ast/tcl/begin_transaction.rs b/src/ast/tcl/begin_transaction.rs new file mode 100644 index 00000000..3ac7c204 --- /dev/null +++ b/src/ast/tcl/begin_transaction.rs @@ -0,0 +1,2 @@ +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct BeginTransactionQuery {} diff --git a/src/ast/tcl/commit.rs b/src/ast/tcl/commit.rs new file mode 100644 index 00000000..e7186dc1 --- /dev/null +++ b/src/ast/tcl/commit.rs @@ -0,0 +1,2 @@ +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CommitQuery {} diff --git a/src/ast/tcl/mod.rs b/src/ast/tcl/mod.rs new file mode 100644 index 00000000..919b3c8a --- /dev/null +++ b/src/ast/tcl/mod.rs @@ -0,0 +1,7 @@ +mod begin_transaction; +mod commit; +mod rollback; + +pub use begin_transaction::*; +pub use commit::*; +pub use rollback::*; diff --git a/src/ast/tcl/rollback.rs b/src/ast/tcl/rollback.rs new file mode 100644 index 00000000..28639340 --- /dev/null +++ b/src/ast/tcl/rollback.rs @@ -0,0 +1,2 @@ +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct RollbackQuery {}