Expand description
Compile-time checked SQL query macros with offline cache support.
Connects to PostgreSQL at compile time via pg-wired to validate SQL and generate typed result structs.
§Modes
- Online (default): Connects to DB via
DATABASE_URL, caches results to.resolute/ - Offline: Set
RESOLUTE_OFFLINE=trueto use cached metadata only (no DB needed) - Prepare: Run
resolute-cli prepareto populate the cache from source files
ⓘ
let rows = resolute::query!("SELECT id, name FROM users WHERE id = $1", user_id)
.fetch_all(&client)
.await?;Macros§
- query
query!("SQL", param1, param2, ...)— compile-time checked SQL query.- query_
as query_as!(Type, "SQL", param1, param2, ...)— compile-time checked query mapped to an existing struct via FromRow.- query_
file query_file!("path/to/query.sql", param1, param2, ...)— like query! but reads SQL from a file.- query_
file_ as query_file_as!(Type, "path/to/query.sql", param1, ...)— like query_as! but reads SQL from a file.- query_
file_ scalar query_file_scalar!("path/to/query.sql", param1, ...)— file-based scalar query.- query_
scalar query_scalar!("SQL", param1, ...)— compile-time checked single-value query.- query_
unchecked query_unchecked!("SQL", param1, ...)— skip compile-time validation. Useful when DATABASE_URL is unavailable and no cache exists. Params are passed as-is; no type or count checking.