Changelog

Versions are released on PGXN. Each upgrade script (pg_promise_guard--OLD--NEW.sql) documents, in its own header, exactly what changed and why; that is the authoritative per-version record.

0.2.4 – unreleased

  • A temporary table of the session that evaluates a promise can no longer hide a broken one. check_promises() reads the catalog without a schema under search_path = promise_guard, pg_catalog, and PostgreSQL searches an unnamed pg_temp first for tables: a temporary pg_trigger or pg_class stood in for the real catalog. That matters when the evaluation runs in someone else’s session with the owner’s rights – a SECURITY DEFINER function that runs the assertion watch() declared, as pg_agent_gate does inside an agent’s commit. Measured on 0.2.3 (test/pg_temp.sh, make check-pgtemp): a disabled audit trigger read broken, and holds once the evaluating session kept an empty pg_temp.pg_trigger or pg_temp.pg_class. Every function now names pg_temp last. No table changes.

0.2.3 – 2026-10-06

  • License: Apache License 2.0, replacing the PostgreSQL License, from this release on. Every version up to and including 0.2.2, already published, stays under the PostgreSQL License it was released with. No code changed.

0.2.2

Completes the copyright and licensing files: the copyright holder’s full legal name in LICENSE and README, and a per-file SPDX header on every SQL source file. No schema change.

0.2.1

No schema change. Adds project governance and legal files (NOTICE, AUTHORS, SECURITY, CONTRIBUTING, TRADEMARK). The database objects are byte-for-byte those of 0.2.0; the 0.2.0--0.2.1 upgrade is empty on purpose.

0.2.0 and earlier

See the header of each pg_promise_guard--*--*.sql upgrade script and the release notes on PGXN.