Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AST Builder API

The recommended way to use QAIL. Build queries as typed Rust structs.

Query Types

MethodSQL Equivalent
Qail::get()SELECT
Qail::add()INSERT
Qail::set()UPDATE
Qail::del()DELETE

SELECT Queries

#![allow(unused)]
fn main() {
use qail_core::{Qail, Operator, SortOrder};

let cmd = Qail::get("users")
    .columns(["id", "email", "name"])
    .filter("active", Operator::Eq, true)
    .order_by("created_at", SortOrder::Desc)
    .limit(10)
    .offset(20);
}

INSERT Queries

#![allow(unused)]
fn main() {
let cmd = Qail::add("users")
    .columns(["email", "name"])
    .values(["alice@example.com", "Alice"])
    .returning(["id", "created_at"]);
}

UPDATE Queries

#![allow(unused)]
fn main() {
let cmd = Qail::set("users")
    .set_value("status", "active")
    .set_value("verified_at", "now()")
    .where_eq("id", 42);
}

DELETE Queries

#![allow(unused)]
fn main() {
let cmd = Qail::del("users")
    .where_eq("id", 42);
}

Builder Methods

MethodDescription
.columns([...])Select specific columns
.select_all()SELECT *
.filter(col, op, val)WHERE condition
.where_eq(col, val)WHERE col = val
.order_by(col, dir)ORDER BY
.limit(n)LIMIT n
.offset(n)OFFSET n
.left_join(table, on_left, on_right)LEFT JOIN
.returning([...])RETURNING clause