DBMS Weekly — 2026-06-22 (week of 2026-06-22–2026-06-28)
PG19 is in beta (Beta 1 shipped Jun 4); this week's master commits are mostly beta-period hardening, while the PG20-1 CommitFest (collection phase, Jul 1–31) fills with the next cycle's patches. Full network scan via the in-browser path — see the source note at the bottom.
PostgreSQL
- In-core DDL reconstruction starts to take shape — the week's busiest patch thread ("Add pg_get_table_ddl()", 14 messages) and a cluster of commits point at SQL-callable DDL reconstruction — the thing you currently shell out to
pg_dumpfor. Tom Lane fixed the variadic declarations of thepg_get_*_ddl()functions, Andrew Dunstan switched them to named boolean parameters, and the "Get Object DDL Functions" docs table was committed at the window's edge. (Tom Lane, Andrew Dunstan · postgres git)[committed] - Inherited CHECK constraints can no longer be silently weakened — a child table could relax a CHECK it inherited, so the parent's advertised guarantee no longer held across the hierarchy; the matching CF entry ("CHECK constraint enforceability recursion") was committed Jun 28. Paired with doc clarifications for
ALTER CONSTRAINTand inherited-constraint behavior. (Andrew Dunstan)[committed] - COPY TO (FORMAT json) respects an explicit column list's order —
COPY t (b, a) TO … (FORMAT json)now emits keys in the requested order, matching text/CSV. (Andrew Dunstan)[committed] - Temporal
FOR PORTION OFgets two beta fixes — Peter Eisentraut moved the volatility check on the SQL:2011 period bounds into the planner and rejected child-partition foreign tables underFOR PORTION OF, hardening the new temporal feature before GA. (Peter Eisentraut)[committed] MERGE/SPLIT PARTITIONnow honorsdefault_tablespace— reshaping a partitioned table no longer quietly lands data on the wrong tablespace. (Alexander Korotkov)[committed]- A UUID work surge — the
uuid→byteacast was marked leakproof (so quals using it can sink below RLS/security-barrier views), and the CommitFest filled with UUID patches: SIMD-accelerated UUID parsing,MIN/MAXaggregates foruuid,UUIDv6support inuuid_extract_timestamp(), and a fix foruuidv7wrongly accepting dates before 1970. (Masahiko Sawada + CF)[committed + patches] pg_stat_iostops misattributing autovacuum-launcher extends — relation extends by the autovacuum launcher were counted like a worker's, skewing per-backend-type I/O accounting. (Melanie Plageman)[committed]- Beta-hardening grab-bag — out-of-bounds read fixed in the autoprewarm worker (Tomas Vondra); the online data-checksums worker got a four-commit correctness pass (Heikki Linnakangas); null-pointer crash fixed in the ECPG compiler (Tom Lane);
\crosstabviewnow honors\psetboolean/null display (Álvaro Herrera); and collation lookup is avoided for"char"statistics (Tom Lane).[committed]
Reading from Planet PostgreSQL
- Some more thoughts on random_page_cost — Tomas Vondra revisits whether the SSD-era default (4.0) still makes sense, following up on his pre-recorded POSETTE talk; the planner's random-vs-sequential cost ratio is increasingly wrong on NVMe. (Tomas Vondra)
- Same rows, different SUM — Radim Marek sums a 5-million-row
float8column three times on an untouched table and gets three different answers; a clean tour of why parallel aggregation + floating-point non-associativity makesSUM(double precision)non-deterministic. (Radim Marek · boringsql) - Stop Punishing Your Postgres for a Crash That Won't Happen — Lætitia Avrot dismantles the widespread fear that a longer
checkpoint_timeoutmeans a longer crash recovery, and why setting it to 1–5 minutes hurts steady-state performance. (Lætitia Avrot) - Heterogeneous Graphs in SQL/PGQ on PostgreSQL 19 — Hans-Jürgen Schönig exercises PG19's in-core SQL/PGQ property-graph querying (
GRAPH_TABLE) over a graph with multiple vertex/edge labels. (Hans-Jürgen Schönig · Cybertec) - pg_stats: How Postgres Internal Stats Work — Richard Yen on the statistics model behind seq-scan-vs-index-scan planner decisions. (Richard Yen)
- All Your GUCs in a Row — Christophe Pettus ran a near-daily series of short planner-GUC deep-dives this week (
enable_hashjoin,enable_hashagg,enable_gathermerge,enable_async_append,effective_io_concurrency, distinct/group-by reordering). (Christophe Pettus · thebuild.com)
AI meets the project
- Why PostgreSQL needs an AI usage policy — Jan Wieremjewicz argues the project should set norms for AI-generated contributions; it pairs with the active "The PostgreSQL C Dialect" hackers thread (10 messages, 6 authors) on codifying the C subset Postgres actually uses. (Percona; pgsql-hackers)
Ecosystem releases (from the official news archive)
- pgtt v4.5 — the Global Temporary Tables extension ships a new release, mirroring the ongoing in-core GTT patch discussion. (HexaCluster)
- postgres-lsp — a Language Server (SQL + PL/pgSQL) built on tree-sitter-postgres; announced Jun 21, just before the window, but a notable new tool. (Gavin M. Roy)
[just pre-window] - IvorySQL 5.4 — the Oracle-compatible Postgres fork rebases on PostgreSQL 18.4. (Highgo)
PostgreSQL mailing lists (what's being designed)
Scanned the full Jun 22–28 pgsql-hackers archive. Most active design threads:
- Conflict log history table for Logical Replication — by a wide margin the week's busiest design thread (~35 messages, 5–6 authors across the window): a PG20-targeted feature letting a subscription persist apply-time conflicts to a system-managed table rather than only the server log. (Amit Kapila, Peter Smith, Nisha Moond, Dilip Kumar)
- The PostgreSQL C Dialect — codifying which C features the tree relies on (see AI section above).
- New SQL surface — proposals for a
PRODUCT()aggregate,MIN/MAXforuuid, and anON EMPTYclause for aggregate/window functions; plus the long-running Row pattern recognition (SQL:2016 RPR) thread. - Reduce reorder buffer spill from O(N²) to O(N) during vacuum storms — a logical-decoding performance patch landed in the CommitFest this week, attacking quadratic spill behavior when many concurrent transactions interleave. (new CF record)
CommitFest (open: PG20-1, #59 — collection phase)
Now that the activity log is reachable again, here is the verified Jun 22–28 flow (last run could not fetch it):
- Committed in-window: CHECK-constraint enforceability recursion (→ Dunstan),
\crosstabviewdisplay settings (→ Herrera),bytea(uuid)leakproof (→ Sawada), and BUG #19484 — segfault via FDW (→ Langote). - Withdrawn:
uuidv7(interval)timestamp-underflow guard; a pgbench--continue-on-errordoc patch. - Notable new records: SIMD UUID parsing,
MIN/MAXforuuid,UUIDv6inuuid_extract_timestamp(),ON EMPTYfor aggregate/window functions, a hook for plugins to acquire sample rows duringANALYZE(custom-sampling extension point), anenable_groupaggGUC, and a statistics view to track usage of deprecated features.
(PG20-1 formally runs Jul 1–31; the queue currently shows ~290 entries. Absolute totals are read from the filter sidebar and treated as approximate, not a verified snapshot.)
Wider DBMS & distributed data
- ClickHouse 26.6 (Jun 25) — the June monthly stable leans into distributed and streaming analytics: continuous queries over
MergeTree(implemented as a series of snapshot reads — a first step toward streaming queries),EXPLAIN WHATIF(estimate a hypothetical skip index's skip-ratio before building it), and experimental multi-stage distributed execution (the planner splits a query into stages connected by scatter/broadcast/gather/shuffle exchanges, enabling distributed shuffle/broadcast hash joins, shuffle aggregation, and distributed sort). (release date verified on GitHub; features cross-checked against ClickHouse's 2026 changelog) - TimescaleDB 2.28.1 (Jun 23) — maintenance release of the Postgres time-series extension.
- WAL-RUS: a Rust rewrite of WAL-G — a from-scratch Rust reimplementation of the WAL-G Postgres backup tool (128 pts on HN). (write-up on the ClickHouse blog)
Research & cutting edge
- DiStash: A Disaggregated Multi-Stash Transactional Key-Value Store — a transactional KV design built for disaggregated (compute/storage-separated) hardware. [paper · arXiv cs.DB]
- BtrLog: Low-Latency Logging for Cloud Database Systems — a logging design aimed at cutting tail latency for cloud DB write paths; WAL-adjacent reading for Postgres hackers. [paper · arXiv cs.DB]
Community pulse
- British Columbia, Time Zones, and Postgres — 143 pts / 112 comments; a war story on how a jurisdiction's time-zone change ripples through Postgres
timestamptzhandling. (Crunchy Data) - PostgreSQL is enough (2024) — 121 pts / 90 comments; the perennial "just use Postgres for everything" argument resurfaces and gets re-litigated.
- Lies, Damn Lies and Database Benchmarks — 57 pts / 28 comments; a critique of how DB benchmarks are framed and cherry-picked. (QuestDB)
- Show HN: DBOSify — a drop-in Temporal replacement built on Postgres — 88 pts / 19 comments; durable workflow execution backed by Postgres instead of a dedicated engine.
International (non-English sources)
- Range data type in PostgreSQL: speeding up queries
[ru]— using range types with GiST to make overlap/containment queries cheap. (Nexign · Habr) (orig: «Диапазонный тип данных в PostgreSQL: ускоряем запросы») - Lessons about deadlocks, again
[ru]— a production deadlock post-mortem and how lock-ordering bit again. (Habr) (orig: «И вновь уроки про deadlock-и») - From ETL to CDC: choosing a real-time analytics architecture on PostgreSQL, Kafka and ClickHouse (Part 1)
[ru]— a change-data-capture pipeline design walk-through. (Habr) - pgBackRest plugin for CloudNativePG
[fr]— wiring pgBackRest in as a CNPG backup plugin; alongside a companion post, "pgBackRest: une réponse communautaire". (Dalibo)
Conferences & CFP
- PGDay.UK 2026 — Sep 8, 2026, London; schedule published and registration open.
- PGSession 19 — Jan 12–13, 2027, Paris; call for papers open. (Dalibo)
New sources added this week
- QuestDB blog — time-series engine internals and (as this week) sharp benchmarking-methodology writing. Added to wider-DBMS sources.
- Greengage blog
[ru]— engineering posts on the Greenplum-lineage Postgres MPP (this week:pg_upgrade/ggupgrademajor upgrades andggrebalanceshrink). Worth watching for MPP-on-Postgres internals.
~30 items · sources scanned: Planet PostgreSQL (RSS, 28 in-window posts), postgresql.org news archive, pgsql-hackers archive (full Jun 22–28), CommitFest PG20-1 activity log + queue, postgres git master (full window, ~30 commits), GitHub Releases API (9 engines), ClickHouse 2026 changelog, arXiv cs.DB, Hacker News (Algolia, 7 queries), Habr PostgreSQL hub [ru], Dalibo [fr] · filtered out as marketing/promotion: ~8 · out-of-window items excluded.
Source/fetch note: plain WebFetch timed out on the postgres domains this run (last run it was a GitHub-only egress policy). The full scan was instead done over the in-browser path — Claude-in-Chrome plus same-origin fetch() reached planet.postgresql.org, www.postgresql.org, commitfest.postgresql.org, the GitHub API, arXiv, HN Algolia, Habr and Dalibo cleanly. That recipe is now the reliable fallback when direct fetch is blocked; recorded in sources.md.