sea-query 0.22.0

🌊 A dynamic query builder for MySQL, Postgres and SQLite
Documentation
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);