Skip to content

Commit 04ee557

Browse files
committed
feat(rust): Add initial Postgres support + tests
1 parent 2d0c73a commit 04ee557

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[workspace]
2+
3+
[package]
4+
name = "postgres-test"
5+
version = "0.1.0"
6+
edition = "2021"
7+
8+
[dependencies]
9+
postgres = { version = "0.19" }
10+
11+
[[bin]]
12+
name = "postgres"
13+
path = "./main.rs"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
3+
fn main() -> Result<(), Box<dyn std::error::Error>> {
4+
// Get input from CLI
5+
let args: Vec<String> = std::env::args().collect();
6+
let name = &args[1];
7+
let age = &args[2];
8+
9+
let mut conn = postgres::Client::connect("host=localhost user=postgres", postgres::NoTls)?;
10+
11+
conn.execute( // $ sql-sink
12+
"CREATE TABLE person (
13+
id SERIAL PRIMARY KEY,
14+
name VARCHAR NOT NULL,
15+
age INT NOT NULL
16+
)",
17+
&[],
18+
)?;
19+
20+
let query = format!("INSERT INTO person (name, age) VALUES ('{}', '{}')", name, age);
21+
22+
conn.execute(query.as_str(), &[])?; // $ sql-sink
23+
conn.batch_execute(query.as_str())?; // $ sql-sink
24+
25+
conn.prepare(query.as_str())?; // $ sql-sink
26+
// conn.prepare_typed(query.as_str(), &[])?;
27+
28+
conn.query(query.as_str(), &[])?; // $ sql-sink
29+
conn.query_one(query.as_str(), &[])?; // $ sql-sink
30+
conn.query_opt(query.as_str(), &[])?; // $ sql-sink
31+
// conn.query_raw(query.as_str(), &[])?;
32+
// conn.query_typed(query.as_str(), &[])?;
33+
// conn.query_typed_raw(query.as_str(), &[])?;
34+
35+
for row in &conn.query("SELECT id, name, age FROM person", &[])? { // $ sql-sink
36+
let id: i32 = row.get("id");
37+
let name: &str = row.get("name");
38+
let age: i32 = row.get("age");
39+
println!("found person: {} {} {}", id, name, age);
40+
}
41+
42+
Ok(())
43+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
qltest_cargo_check: true
2+
qltest_dependencies:
3+
- postgres = { version = "0.19" }

0 commit comments

Comments
 (0)