diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..27f39e7 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,16 @@ +stages: + - primary + +build-and-test: + stage: primary + image: rust:1.74.0 + tags: + - shared-fi + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + script: + # build and test in single job for faster execution + # because shared runner doesn't allow caching + - cargo build --verbose + - cargo test --verbose diff --git a/minisql/Cargo.toml b/minisql/Cargo.toml index d200f70..3bfcbfa 100644 --- a/minisql/Cargo.toml +++ b/minisql/Cargo.toml @@ -2,6 +2,7 @@ name = "minisql" version = "0.1.0" edition = "2021" +rust-version = "1.74" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/server/src/main.rs b/server/src/main.rs index 8ce6785..ea69c48 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -210,8 +210,14 @@ async fn handle_query(writer: &mut W, state: &SharedDbState, query: String, t } false }, - Response::TableCreated => true, - Response::IndexCreated => true, + Response::TableCreated => { + writer.write_command_complete(CompleteStatus::CreateTable).await?; + true + }, + Response::IndexCreated => { + writer.write_command_complete(CompleteStatus::CreateIndex).await?; + true + }, } }; diff --git a/server/src/proto_wrapper.rs b/server/src/proto_wrapper.rs index bd74ba6..03ce8f5 100644 --- a/server/src/proto_wrapper.rs +++ b/server/src/proto_wrapper.rs @@ -13,6 +13,8 @@ pub enum CompleteStatus { }, Delete(usize), Select(usize), + CreateTable, + CreateIndex, } impl CompleteStatus { @@ -21,6 +23,8 @@ impl CompleteStatus { CompleteStatus::Insert { oid, rows } => format!("INSERT {} {}", oid, rows), CompleteStatus::Delete(rows) => format!("DELETE {}", rows), CompleteStatus::Select(rows) => format!("SELECT {}", rows), + CompleteStatus::CreateTable => "CREATE TABLE".to_string(), + CompleteStatus::CreateIndex => "CREATE INDEX".to_string(), } } }