v0.25.0 is a contract release. The runtime path is now AST-first and raw SQL helper APIs are removed from the default execution model.
This does not mean PostgreSQL stops parsing SQL server-side. It means application code stops constructing ad-hoc SQL strings in the AST path.
Breaking Changes
- Removed Qail::raw_sql(...), Qail::is_raw_sql(), raw_where(...), and raw helpers in qail-core.
- Removed PgDriver::execute_raw(...) and PgDriver::fetch_raw(...) in qail-pg.
- Removed raw SQL pass-through support in AST encoder runtime flow.
What to Use Instead
- Use Qail::get/add/set/del with typed expressions and filters.
- Use typed joins and relation-safe builders for cross-table operations.
- Use session AST commands for connection/session settings.
let cmd = Qail::get("orders")
.columns(["id", "status", "created_at"])
.eq("status", "paid")
.order_by("created_at", Desc)
.limit(50);
Migration Tips
- Search for removed raw APIs first and replace with AST builders incrementally.
- Gate old examples/tests behind legacy-raw-examples if needed during transition.
- Prefer typed schema + typed query path when rewriting high-risk query surfaces.
v0.25.0 narrows the runtime surface so the safe path is the default path.← Back to Blog