mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-12-30 05:11:13 +00:00
Add Diesel DSL to the select bench
This commit is contained in:
parent
2c9720ed81
commit
0603cb677e
@ -3,6 +3,9 @@
|
||||
#[macro_use]
|
||||
extern crate criterion;
|
||||
|
||||
#[macro_use]
|
||||
extern crate diesel;
|
||||
|
||||
use criterion::Criterion;
|
||||
use futures::stream::TryStreamExt;
|
||||
use tokio::runtime::Runtime;
|
||||
@ -29,7 +32,7 @@ fn rust_postgres_select(cl: &mut rust_postgres::Client) {
|
||||
}
|
||||
|
||||
fn diesel_select(conn: &diesel::pg::PgConnection) {
|
||||
use diesel::{query_dsl::RunQueryDsl, QueryableByName};
|
||||
use diesel::query_dsl::RunQueryDsl;
|
||||
|
||||
#[derive(QueryableByName)]
|
||||
struct Contact {
|
||||
@ -43,6 +46,19 @@ fn diesel_select(conn: &diesel::pg::PgConnection) {
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
fn diesel_dsl_select(conn: &diesel::pg::PgConnection) {
|
||||
use diesel::prelude::*;
|
||||
|
||||
table! {
|
||||
contacts {
|
||||
id -> BigInt,
|
||||
name -> Text,
|
||||
}
|
||||
}
|
||||
|
||||
let _rows: Vec<String> = contacts::table.select(contacts::name).load(conn).unwrap();
|
||||
}
|
||||
|
||||
fn criterion_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("sqlx select", |b| {
|
||||
let rt = Runtime::new().unwrap();
|
||||
@ -74,6 +90,16 @@ fn criterion_benchmark(c: &mut Criterion) {
|
||||
diesel_select(&conn);
|
||||
});
|
||||
});
|
||||
|
||||
c.bench_function("diesel dsl select", |b| {
|
||||
use diesel::Connection;
|
||||
|
||||
let conn = diesel::pg::PgConnection::establish(DATABASE_URL).unwrap();
|
||||
|
||||
b.iter(|| {
|
||||
diesel_dsl_select(&conn);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, criterion_benchmark);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user