@crvouga/mockingbird-service-postgres 3.7.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog — @crvouga/mockingbird-service-postgres
2
2
 
3
- ## 3.7.0 (2026-10-17)
3
+ ## 3.8.0 (2026-10-19)
4
+
5
+ ### Features
6
+
7
+ - resolve the agent-reported issue queue in one batch ([25c52b6](https://github.com/crvouga/mockingbird/commit/25c52b668a53ddb80b968419601a20abf33f956b))
8
+
9
+ ## 3.7.0 (2026-10-16)
4
10
 
5
11
  ### Features
6
12
 
package/COMPATIBILITY.md CHANGED
@@ -100,11 +100,12 @@ The oracle exposes **2787 builtin functions** and **74 operators** in `pg_catalo
100
100
  | Materialized view indexes | PARTIALLY VERIFIED | Ordinary/partial/unique indexes, creation before population, catalog links, unique enforcement and atomic failure on refresh, snapshot roundtrip. Physical access methods and concurrent refresh are not modelled (`tests/contract/views/materialized-indexes.test.ts`) |
101
101
  | Constraint triggers | PARTIALLY VERIFIED | AFTER ROW multi-event triggers, DEFERRABLE INITIALLY DEFERRED/IMMEDIATE, final-state execution at commit, failed-commit rollback, SET CONSTRAINTS and savepoints; definitions survive snapshots, pending events cannot be exported. Uses the existing plpgsql-lite subset (`tests/contract/triggers/deferred.test.ts`, `tests/wire/deferred.test.ts`) |
102
102
  | Triggers (row-level, LANGUAGE sql-expressible) | PARTIALLY VERIFIED | Creation-order firing, `UPDATE OF` ignored, no INSTEAD OF (documented) |
103
+ | Statement triggers and transition tables | PARTIALLY VERIFIED | `BEFORE` / `AFTER` `FOR EACH STATEMENT` triggers on `INSERT`, `UPDATE` and `DELETE` fire once per statement in trigger-name order, also when no row changes (`INSERT ... ON CONFLICT DO UPDATE` fires the `INSERT` and the `UPDATE` ones). `AFTER` triggers take `REFERENCING { OLD \| NEW } TABLE [AS] name` for one `INSERT`, `UPDATE` or `DELETE` event: the body reads the statement's rows (`OLD` and `NEW` position-aligned for `UPDATE`) as relations with the table's columns, quoted names stay case-sensitive, and `pg_trigger.tgoldtable` / `tgnewtable` and snapshots carry them. The clause errors match PostgreSQL (`42P17` for BEFORE, wrong event, duplicate or equal names; `0A000` for several events, column lists, `TRUNCATE`, `ROW` variables). Not modelled: `FOR EACH ROW` triggers with transition tables (`0A000`), statement triggers for `TRUNCATE` and for cascaded foreign-key actions (`tests/contract/triggers/transition-tables.test.ts`, `tests/wire/issue-465-466.test.ts`) |
103
104
  | CREATE FUNCTION LANGUAGE sql / plpgsql-lite | PARTIALLY VERIFIED | Scalar + set-returning; plpgsql subset: DECLARE, EXCEPTION WHEN others, CASE, FOR-IN-SELECT, RETURN NEXT |
104
105
  | Text search (tsvector / tsquery / @@ / ts_rank) | PARTIALLY VERIFIED | `simple`-style config; no ispell/synonym dictionaries |
105
106
  | `CREATE EXTENSION pgcrypto` / `digest()` | PARTIALLY VERIFIED | `digest(bytea, text)` and `digest(text, text)` for md5, sha1, sha224, sha256, sha384, sha512. `crypt`, `hmac`, `gen_salt`, and PGP functions are not installed. OpenSSL-only names (sha3, blake2, ripemd160, sm3) are not available. Extensions other than `pgcrypto` and `pg_trgm` still fail loud (`0A000`) |
106
107
  | `pg_available_extensions`, `pg_available_extension_versions`, `pg_extension` | VERIFIED | List exactly what `CREATE EXTENSION` can install here: `pgcrypto` (1.3, 1.4), `pg_trgm` (1.3 to 1.6) and the built-in `plpgsql` (1.0), with `installed_version`, schema and version following `CREATE` / `DROP EXTENSION`, rollback and snapshots. A stock PostgreSQL server lists every contrib module it ships; those are absent here (zero rows, and `CREATE EXTENSION` is `0A000`). An older version installs the same partial function set as the default one. `DROP EXTENSION` reports dependents (`2BP01`) and `CASCADE` removes dependent defaults, generated columns, CHECK constraints, views and indexes; `DROP EXTENSION plpgsql` and `ALTER EXTENSION` fail loud (`0A000`) (`tests/contract/extensions/catalogs.test.ts`) |
107
- | `CREATE EXTENSION pg_trgm` | PARTIALLY VERIFIED | `similarity(text, text)`, `<%` at the default word-similarity threshold 0.6, and a single-column `gin_trgm_ops` index on `text` or `varchar`. `gist_trgm_ops`, multicolumn `gin_trgm_ops`, and non-default thresholds are not installed. |
108
+ | `CREATE EXTENSION pg_trgm` | PARTIALLY VERIFIED | `similarity(text, text)`, `<%` at the default word-similarity threshold 0.6, and a single-column `gin_trgm_ops` index on a `text` or `varchar` column or expression (`lower(name) public.gin_trgm_ops`; an expression of another type is `42804`, an unknown column or function inside it fails as in PostgreSQL). `gist_trgm_ops`, multicolumn `gin_trgm_ops`, and non-default thresholds are not installed. |
108
109
  | COPY FROM/TO (text, csv) | VERIFIED | Via `copyFrom` API hook / rows out |
109
110
  | PREPARE / EXECUTE / DEALLOCATE, SET / SHOW / RESET | VERIFIED | GUC subset, including PostgreSQL dump and migration-client preambles |
110
111
  | Transactions / savepoints | VERIFIED | No `25P02` aborted state (documented divergence) |