mirror of
https://github.com/github/codeql.git
synced 2026-04-24 16:25:15 +02:00
feat(rust): Add initial Postgres support + tests
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
[workspace]
|
||||
|
||||
[package]
|
||||
name = "postgres-test"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
postgres = { version = "0.19" }
|
||||
|
||||
[[bin]]
|
||||
name = "postgres"
|
||||
path = "./main.rs"
|
||||
43
rust/ql/test/library-tests/frameworks/postgres/main.rs
Normal file
43
rust/ql/test/library-tests/frameworks/postgres/main.rs
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Get input from CLI
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
let name = &args[1];
|
||||
let age = &args[2];
|
||||
|
||||
let mut conn = postgres::Client::connect("host=localhost user=postgres", postgres::NoTls)?;
|
||||
|
||||
conn.execute( // $ sql-sink
|
||||
"CREATE TABLE person (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR NOT NULL,
|
||||
age INT NOT NULL
|
||||
)",
|
||||
&[],
|
||||
)?;
|
||||
|
||||
let query = format!("INSERT INTO person (name, age) VALUES ('{}', '{}')", name, age);
|
||||
|
||||
conn.execute(query.as_str(), &[])?; // $ sql-sink
|
||||
conn.batch_execute(query.as_str())?; // $ sql-sink
|
||||
|
||||
conn.prepare(query.as_str())?; // $ sql-sink
|
||||
// conn.prepare_typed(query.as_str(), &[])?;
|
||||
|
||||
conn.query(query.as_str(), &[])?; // $ sql-sink
|
||||
conn.query_one(query.as_str(), &[])?; // $ sql-sink
|
||||
conn.query_opt(query.as_str(), &[])?; // $ sql-sink
|
||||
// conn.query_raw(query.as_str(), &[])?;
|
||||
// conn.query_typed(query.as_str(), &[])?;
|
||||
// conn.query_typed_raw(query.as_str(), &[])?;
|
||||
|
||||
for row in &conn.query("SELECT id, name, age FROM person", &[])? { // $ sql-sink
|
||||
let id: i32 = row.get("id");
|
||||
let name: &str = row.get("name");
|
||||
let age: i32 = row.get("age");
|
||||
println!("found person: {} {} {}", id, name, age);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
qltest_cargo_check: true
|
||||
qltest_dependencies:
|
||||
- postgres = { version = "0.19" }
|
||||
Reference in New Issue
Block a user