(c: &mut Criterion)
| 3 | use pgsqlite::query::simple_query_detector::is_fast_path_simple_query; |
| 4 | |
| 5 | fn benchmark_simple_query_detection(c: &mut Criterion) { |
| 6 | let simple_queries = vec![ |
| 7 | "SELECT * FROM users", |
| 8 | "SELECT id, name FROM users WHERE id = $1", |
| 9 | "INSERT INTO users (name, email) VALUES ($1, $2)", |
| 10 | "UPDATE users SET name = $1 WHERE id = $2", |
| 11 | "DELETE FROM users WHERE id = $1", |
| 12 | ]; |
| 13 | |
| 14 | let complex_queries = vec![ |
| 15 | "SELECT * FROM users WHERE created_at::date = $1", |
| 16 | "SELECT * FROM pg_catalog.pg_tables", |
| 17 | "SELECT * FROM users WHERE email ~ '@gmail.com'", |
| 18 | "SELECT * FROM users WHERE id = ANY($1)", |
| 19 | "DELETE FROM users USING orders WHERE users.id = orders.user_id", |
| 20 | ]; |
| 21 | |
| 22 | c.bench_function("fast_path_simple_queries", |b| { |
| 23 | b.iter(|| { |
| 24 | for query in &simple_queries { |
| 25 | black_box(is_fast_path_simple_query(query)); |
| 26 | } |
| 27 | }) |
| 28 | }); |
| 29 | |
| 30 | c.bench_function("fast_path_complex_queries", |b| { |
| 31 | b.iter(|| { |
| 32 | for query in &complex_queries { |
| 33 | black_box(is_fast_path_simple_query(query)); |
| 34 | } |
| 35 | }) |
| 36 | }); |
| 37 | } |
| 38 | |
| 39 | criterion_group!(benches, benchmark_simple_query_detection); |
| 40 | criterion_main!(benches); |
nothing calls this directly
no test coverage detected