You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
contract: the extension contract published with each type's stability, the surface frozen with signatures, and interfaces for TableName, Validate and SQLState (A11 Q6) (#443) (32d9238)
drivertest: a dialect conformance kit a driver runs against its own engine, and the engine suite importable from outside (A11 Q4) (#441) (340ac49)
observe: every statement Quark sends — DDL, introspection, savepoints and raw — passes the middleware chain and reaches the observer (A11 Q7) (#447) (4aec38b)
query: an opt-in statement cache, and CreateBatch keys in one round trip per chunk where SQL Server and MySQL prove them (A12 Q3) (#452) (4be55a0)
query: CheckVersions holds UpdateBatch on a versioned model to the loaded versions, all or nothing, with an ErrStaleEntity per stale row; the default in 2.0 (QK-45) (#463) (043990b)
Fixed
cache: every write path drops its cache tags once it has written, so an Upsert through RETURNING no longer leaves a cached List stale, and a transaction drops them again when it commits (QK-66) (#462) (bf86b0f)
deps: build and test with Go 1.26.9, which fixes GO-2026-6617 in net/http (#466) (d4949cd)
deps: raise the sibling module floors to quark v1.16.0 (#465) (854c375)
migrate: ApplyPlan's checkpoint answers only for the schema it was recorded against, so a plan applied again after a reset runs again (QK-51) (#458) (68a2ff5)
query: an Upsert with no updateCols returns nil on a PostgreSQL or SQLite conflict, as on the other four engines, and the reference says what each engine does with it (QK-48) (#459) (e84458c)
query: an Upsert without updateCols leaves the existing row as it was on MySQL and MariaDB, and the MERGE of SQL Server and Oracle no longer writes the key or created_at (QK-61, QK-62) (#460) (ff652c0)
query: CreateBatch on SQL Server returns the engine's error for a rejected row, not a scan of the NULL key (QK-53) (#453) (f22b3b6)
query: UpdateBatch on a ForTx query runs in the caller's transaction, under a savepoint, instead of opening its own (QK-57) (#455) (f740bb6)
query: Upsert writes into the entity the key of the row its own statement wrote, so MySQL no longer hands back another row's key and SQL Server and Oracle no longer keep the key the entity carried (QK-63, QK-64) (#461) (d11f8d0)
schema: a foreign key's ON DELETE and ON UPDATE are written as the engine takes them — Oracle's NO ACTION is left out, and an action the engine lacks is refused before any DDL (QK-49) (#457) (94be356)
Performance
query: List without a JSON copy when nothing caches it, preload with = ANY on PostgreSQL, and placeholders without fmt (A12 Q2) (#444) (d330862)