The target is pg-datahike 0.2.0. Stable means a dependable PostgreSQL interface to Datahike for the surface we claim, not PostgreSQL feature parity. The release rule is:
No silent wrong answers or internal failures in the supported surface; unsupported behavior fails explicitly with a PostgreSQL SQLSTATE.
test/integration/beta-exit.edn is the campaign ledger. It names every release
gate, open blocker and deliberate non-goal. Validate and print it with:
bb beta-exit
| Boundary | Current admission | What green means |
|---|---|---|
| Unit and focused regression tests | full suite, per commit | Known translator, execution, catalog, pgwire, temporal and fuzz findings remain fixed. |
| SQLLogic | full local corpus, per commit | The admitted application-facing SQL examples return their checked results. |
| Released secondary stack | focused Datahike/Scriptum/Proximum/Stratum vertical on JDK 25, per commit | Secondary creation, mutation, fallback, pagination, history and lifecycle contracts remain valid together. |
| pgjdbc | ResultSetTest, 80 cases, per commit | The most exercised JDBC result and wire path remains compatible. It is not broad JDBC conformance. |
| Hibernate | 14 application tests, per commit | Hibernate 6 DDL, CRUD, relationships, HQL and transaction flows work. |
| SQLAlchemy | 16 application tests, per commit | SQLAlchemy 2 with psycopg2 can perform the documented application flow. |
| asyncpg | 11 upstream modules, per commit | New per-test failures and module hangs fail CI; 67 known failures remain explicit. |
| node-postgres | 14 must-pass and 8 expected-failure files, per commit | The admitted JS client files stay green and known-gap files continue to run. |
pg_dump | default COPY-format Pagila round-trip, per commit | Every compared table restores with the same row count and no COPY data failure. |
| PostgreSQL regression corpus | complete pinned 17.7 inventory plus admitted strict slices | Every scheduled upstream file is classified, and every strict slice points to a real focused regression test. |
| Odoo and Metabase | manual release gates | Their documented end-to-end application probes pass before a release candidate is promoted. |
This is behavioral coverage. We do not use source-line coverage as a release percentage: a SQL translator can execute every branch and still return the wrong rows, OIDs or SQLSTATE. Coverage grows by admitting observed behavior from PostgreSQL, drivers and applications into a strict repeatable gate.
ResultSetTest: 80/80 passing. BatchExecuteTest: 122/132 passing,
with three distinct failure classes recorded in its manifest.TBD is not an acceptable final disposition.Fixes remove or close entries in beta-exit.edn; they must also promote the
relevant test from an expected-failure or manual observation into a gate.
The upstream campaign is pinned to the tag in campaign.edn. Materialize that
checkout without changing an existing ../postgres working tree:
bb pg-regress-setup
bb pg-regress-wave inventory
bb pg-regress-wave 1 discovery
The setup command writes under the ignored .internal/ directory by default,
refuses to rewrite an existing checkout and verifies both the exact tag and
the relevant source cleanliness. CI runs the setup and inventory validation on
every commit. Full discovery waves remain local because their useful output is
triage, not a single compatibility percentage.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |