Merge remote-tracking branch 'origin/main' into validation-cleanup
This commit is contained in:
commit
fd03cc2ed4
7 changed files with 45 additions and 3 deletions
16
.gitlab-ci.yml
Normal file
16
.gitlab-ci.yml
Normal file
|
|
@ -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
|
||||
1
Cargo.lock
generated
1
Cargo.lock
generated
|
|
@ -203,6 +203,7 @@ name = "client"
|
|||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
"minisql",
|
||||
"parser",
|
||||
"proto",
|
||||
|
|
|
|||
|
|
@ -11,3 +11,4 @@ anyhow = "1.0.76"
|
|||
proto = { path = "../proto" }
|
||||
minisql = { path = "../minisql" }
|
||||
parser = { path = "../parser" }
|
||||
clap = { version = "4.4.18", features = ["derive"] }
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
use clap::Parser;
|
||||
use proto::handshake::client::do_client_handshake;
|
||||
use proto::handshake::request::HandshakeRequest;
|
||||
use proto::reader::protoreader::ProtoReader;
|
||||
|
|
@ -9,9 +10,21 @@ use proto::message::frontend::{FrontendMessage, QueryData};
|
|||
use proto::reader::oneway::OneWayProtoReader;
|
||||
use proto::writer::oneway::OneWayProtoWriter;
|
||||
|
||||
#[derive(Parser)]
|
||||
struct Cli {
|
||||
/// Port number of the server.
|
||||
#[arg(short, long, default_value_t = 5432, help = "Port number of the server")]
|
||||
port: u16,
|
||||
|
||||
/// Host name or IP address of the server.
|
||||
#[arg(short, long, default_value = "127.0.0.1", help = "Host name or IP address of the server")]
|
||||
host: String,
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
let addr = "127.0.0.1:5432";
|
||||
let cli = Cli::parse();
|
||||
let addr = format!("{}:{}", cli.host, cli.port);
|
||||
|
||||
let mut stream = TcpStream::connect(addr).await?;
|
||||
let (reader, writer) = stream.split();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -210,8 +210,14 @@ async fn handle_query<W>(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
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue