premix_query!() { /* proc-macro */ }Expand description
Compile-time query macro for true Zero-Overhead SQL generation.
This macro generates SQL at compile time, achieving 0% overhead compared to raw sqlx.
§Example
ⓘ
use premix_orm::prelude::*;
let user = premix_query!(User, FIND, filter_eq("id", user_id))
.fetch_one(&pool)
.await?;Compile-time query macro for true Zero-Overhead SQL generation.
This macro generates SQL at compile time, achieving 0% overhead compared to raw sqlx.
§Example
ⓘ
use premix_orm::prelude::*;
// FIND (SELECT + LIMIT 1)
let user = premix_query!(User, FIND, filter_eq("id", 1))
.fetch_one(&pool).await?;
// INSERT
let new_user = premix_query!(
User, INSERT,
set("name", "Bob"),
set("age", 30)
).fetch_one(&pool).await?;
// UPDATE
premix_query!(
User, UPDATE,
set("age", 31),
filter_eq("name", "Bob")
).execute(&pool).await?;
// DELETE
premix_query!(
User, DELETE,
filter_eq("id", 1)
).execute(&pool).await?;
// UPDATE + RETURNING *
let updated = premix_query!(
User, UPDATE,
set("age", 32),
filter_eq("name", "Bob"),
returning_all()
).fetch_one(&pool).await?;§Supported Operations
SELECT- Generate SELECT queryFIND- Generate SELECT + LIMIT 1 queryINSERT- Generate INSERT query (withsetassignments)UPDATE- Generate UPDATE query (withsetassignments and filters)DELETE- Generate DELETE query (with filters)
§Supported Clauses
filter_eq/ne/gt/lt/gte/lte("col", val)- WHERE clause conditionsset("col", val)- SET/VALUES clause for INSERT/UPDATElimit(N)- LIMIT Noffset(N)- OFFSET Nreturning_all()- AppendRETURNING *for UPDATE/DELETE