use criterion::{criterion_group, criterion_main, Criterion};
use sea_query::{tests_cfg::*, *};
fn vanilla() -> String {
format!(
"SELECT `{}` from `{}` where `character` = {}",
"character",
"character".to_owned(),
123
)
}
fn select() -> SelectStatement {
Query::select()
.column(Char::Character)
.from(Char::Table)
.and_where(Expr::col(Char::Character).eq(123))
.to_owned()
}
fn select_and_build() {
select().build(MysqlQueryBuilder);
}
fn select_and_to_string() {
select().to_string(MysqlQueryBuilder);
}
fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("vanilla", |b| b.iter(vanilla));
c.bench_function("select", |b| b.iter(select));
c.bench_function("select_and_build", |b| b.iter(select_and_build));
c.bench_function("select_and_to_string", |b| b.iter(select_and_to_string));
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);