From 60d008351e937ea5d661b8fe575982c54c27d867 Mon Sep 17 00:00:00 2001 From: myyrakle Date: Sun, 17 Mar 2024 02:54:42 +0900 Subject: [PATCH] =?UTF-8?q?[#68]=20AST=EC=97=90=20TCL=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 6 ++++++ src/ast/mod.rs | 11 +++++++++++ src/ast/tcl/begin_transaction.rs | 2 ++ src/ast/tcl/commit.rs | 2 ++ src/ast/tcl/mod.rs | 7 +++++++ src/ast/tcl/rollback.rs | 2 ++ 6 files changed, 30 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 src/ast/tcl/begin_transaction.rs create mode 100644 src/ast/tcl/commit.rs create mode 100644 src/ast/tcl/mod.rs create mode 100644 src/ast/tcl/rollback.rs 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 {}