← All digests

DBMS Weekly — 2026-07-06 (week of 2026-07-06–2026-07-12)

Review month in full swing: PG20-1's committed count jumped 69 → 153 in a week, JSON_TABLE got its PLAN clause, and PostgreSQL quietly turned 30 (first commit: Jul 8/9, 1996). PG19 Beta 2 is due Jul 16 (fix cutoff was Jul 11). The loudest thread of the week was an LLM-assisted Postgres-in-Rust rewrite claiming to pass the full regression suite. A replication self-deadlock in the current 14–16 minors is worth reading before your next standby upgrade. No browser was available this run and several fetch paths were cache-stale; see the source note at the bottom.

PostgreSQL

  • JSON_TABLE gets its PLAN clause — the last big missing piece of SQL/JSON's JSON_TABLE lands in PG20: PLAN / PLAN DEFAULT control how nested paths join (+2,017 lines; originally by Malakhov, Glukhov, Sigaev, Bartunov et al.). (Alexander Korotkov · postgres git) [committed]
  • Grouped subqueries stop defaulting to 1/200 selectivitystadistinct now propagates through GROUP BY/DISTINCT in subqueries and CTEs; the commit message credits the old fallback as a significant factor in poor TPC-DS plans. (Richard Guo · postgres git) [committed]
  • enable_groupagg joins the planner GUC family — soft-disables sort-based grouping (GroupAggregate/Group, sorted DISTINCT/Unique, sorted SetOp) via disabled_nodes, mirroring enable_hashagg. (Richard Guo · postgres git) [committed]
  • Wrong results from qual pushdown past mismatched grouping — pushing HAVING→WHERE or into a subquery across DISTINCT/set-op grouping whose notion of equality disagrees (opfamily or nondeterministic collation) could change answers; backpatched through 18. (Richard Guo · postgres git) [committed]
  • RETURNING OLD could return wrong values under concurrency — with a BEFORE UPDATE trigger and a concurrently updated target row at READ COMMITTED, OLD reflected the wrong tuple (bug #19536); backpatched through 18. (Dean Rasheed · postgres git) [committed]
  • psql's \d is fast again — last week's find that the nondeterministic-LIKE work broke the exact-match-LIKE→index-equality optimization is fixed and backpatched through 18; a HEAD-only follow-up dropping the now-useless recheck surfaced its own collation edge cases. (Jelte Fennema-Nio, Tom Lane · postgres git) [committed]
  • libpq could hang a nonblocking client on big TLS/GSS messagespqReadData() now drains bytes pending inside the SSL/GSS transport buffers, where a message spanning TLS records could strand data and stall the connection; backpatched through 14. (Jacob Champion, Heikki Linnakangas · postgres git) [committed]
  • Master grab-bagUnlockBufHdrExt CAS-ordering fix that could lose flags like BM_IO_ERROR (Andres Freund); FSM now updated after on-access VM setting to stop stale-FSM bloat (Melanie Plageman); database-wide REPACK drops a useless lock pass (ChangAo Chen, Álvaro Herrera); satisfies_hash_partition VARIADIC NULL crash fixed in all branches (Robert Haas); the refint contrib module retired (Nathan Bossart). [committed]

Reading

  • Replication deadlock bug in current Postgres releases 14–16 — the May minors (14.23/15.18/16.14) can self-deadlock in the MultiXactOffset SLRU during WAL replay when the WAL comes from a primary on an older minor: standbys and PITR hang (bug #19490); hold standbys back or two-step upgrade until the Aug 13 minors. (credativ team) [publish date unverified]
  • The tests passed. The plan didn't. — RegreSQL 2.0 gates CI on plan shape, buffers, spills and q-error rather than green tests alone, and injects production statistics via PG18's pg_dump --statistics-only so the planner in test behaves like production. (Radim Marek · boringsql.com)
  • Why pg_hardstorage has no incremental chain — the case for content-addressed (SHA-256 chunked) backups over incremental chains, with 87.5% dedup measured on a 487 GiB fleet and an honest accounting of the full-read I/O cost. (Hans-Jürgen Schönig · Cybertec) [vendor blog — substantive]

Ecosystem releases

  • PostgreSQL JDBC 42.7.12 security release (CVE-2026-54291) — with channelBinding=require, 42.7.4–42.7.11 could silently downgrade from SCRAM-SHA-256-PLUS to plain SCRAM when the server certificate's signature algorithm has no tls-server-end-point hash (Ed25519/Ed448/PQC certs). (pgJDBC)
  • CloudNativePG 1.30.0(CloudNativePG)
    • new DatabaseRole CRD (declarative roles, auto-renewed TLS client certs) and Kubernetes Lease as the promotion gate for primary election
    • in-place major upgrades with Image Volume extensions
    • security fixes CVE-2026-55769 (search_path pinning vs operator-privilege escalation) and CVE-2026-55765 (SCRAM-encode passwords before CREATE/ALTER ROLE); breaking: cluster refs now immutable
  • pg_re2: RE2-powered regular expressions for Postgres — new extension wrapping Google's automata-based RE2: 1.8–8.6x over the native backtracking engine, plus a @~ operator whose gin_re2_ops opclass indexes patterns pg_trgm gives up on. (David Wheeler, Philip Dubé · ClickHouse blog) [vendor blog — substantive]
  • pg_ivm 1.15 — IMMV metadata now survives pg_dump/pg_upgrade (pg_ivm_dump_metadata + restore_immv()); fixes wrong view maintenance under self-modifying triggers and a v1.14 outer-join segfault. (Yugo Nagata)
  • Barman 3.19 — restore directly from cloud object storage (new barman cloud-wal-restore with parallel fetch), backup export/import tarballs, and a fix for --no-get-wal restores skipping newer-timeline WAL — broken PITR on PG12+. (Barman team)
  • PDU: an offline data unloader for dead clusters — catalog reconstruction, table export and WAL row extraction from clusters that won't start; companion tooling to the ransomware-recovery field reports covered last week. (via postgresql.org news)

PostgreSQL mailing lists

  • [hackers] Hash index scans can miss rows during concurrent bucket splits_hash_next lacks the split-transition logic _hash_readnext has, so scans can silently skip matching rows mid-split; all stable branches affected; fix posted, but Amit Kapila still saw a regression diff with it applied. (Peter Geoghegan · pgsql-hackers) [patch posted]
  • [hackers] PG19's FK fast path can validate a violating constraint — Noah Misch's post-commit review rejected the earlier top-transaction-only fix and found worse: a caught FK error inside a PL/pgSQL EXCEPTION block strands the fast-path state, after which ALTER TABLE ADD FK can mark a constraint valid with a violating row present; Amit Langote confirmed and posted a per-subtransaction rework. (Noah Misch, Amit Langote · pgsql-hackers) [patch posted]
  • [hackers] Selective index updates (WARM redux) hit the BitmapAnd wall — Alexander Korotkov points out that aiming unchanged indexes at the chain root and changed ones at the new tuple makes BitmapAnd intersect to empty — the same false-negative trap he calls "one of the critical weaknesses in WARM". (Alexander Korotkov · pgsql-hackers) [design discussion]
  • [hackers] TOML? JSON5? A new config format for pg_hba & friends — TOML mockups for hba/ident/hosts drew Tom Lane's demand for concrete end-user benefit and a -1 on TOML; momentum shifted toward JSON5, with freezing the old format still contested. (Zsolt Parragi et al. · pgsql-hackers) [design discussion]
  • [hackers] Scrollable cursors at the wire-protocol level — pgJDBC's Dave Cramer proposes extending Execute with direction+count under a protocol extension so drivers stop buffering entire scrollable result sets client-side. (Dave Cramer · pgsql-hackers) [design discussion]
  • [hackers] EXPLAIN ANALYZE wait events redirected to sampling — after Andres Freund vetoed adding a branch to pgstat_report_wait_start/end(), the author dropped exact accounting; Robert Haas mapped out the self-sampler vs external-sampler design space (interrupt-handler limits vs cross-process plan-node attribution). (pgsql-hackers) [redirected]
  • [hackers] sequencesync can mark sequences READY with stale data — a race between the sequencesync worker and REFRESH SEQUENCES lets subscribed sequences reach READY despite subscriber data older than the refresh; found via an AI-assisted review pass, fix under debate. (Noah Misch · pgsql-hackers) [open]
  • [hackers] pg_xmin_horizon: what exactly is pinning my horizon? — proposed system view unifying backends, prepared xacts, replication slots and hot-standby feedback with correct horizon classification — the query every DBA hand-rolls, done right this time. (Scott Ray · pgsql-hackers) [patch posted]

CommitFest (open: PG20-1, #59 — In Progress Jul 1–31)

  • Balance (queue totals, Jul 6 → Jul 13): committed 69 → 153 (+84) as the review month accelerated; needs-review roughly flat (300 → 304); total 510 → 613 as patches keep moving in from PG20-2. The CF59 activity log was served stale (cut at Jun 24), so per-patch flow could not be enumerated this week — totals tell the story instead. (totals as served Jul 13, so they include a sliver of Monday morning)
  • Inflow (PG20-2, #61 — where new patches now land): 16 new records Jul 6–12 — incl. per-backend AIO statistics (#6991, Bertrand Drouvot), logical decoding of rollbacks as xact_rollback (#6992), and pg_xmin_horizon (#7004, matching the hackers thread above); 6 entries closed as committed after moving to PG20-1; 1 promoted Ready-for-Committer.
  • New this week: Batched clock sweep (#7000) (Greg Burd) — batches buffer-eviction clock-sweep claims on the shared nextVictimBuffer atomic so backends stop fighting one CAS-contended counter across sockets; v5 posted Jul 11, CI green.
  • Note: CF numbering quirk — #60 is the year-long drafts CF; the next regular CF (PG20-2) is #61.

Community pulse

  • Postgres rewritten in Rust, passing 100% of the regression tests — the week's monster thread: an ex-Heap engineer's LLM-driven c2rust-then-rewrite pipeline produced a thread-per-connection Postgres claiming +50% on sysbench-tpcc and ~300x on analytics; fault lines were threads-vs-processes (a PG contributor: threads buy development ease, not speed), extension crash-isolation, "is fsync on?" benchmark skepticism, and whether an LLM rewrite is maintainable — or even properly licensed. (Hacker News · 812 pts, 721 comments)
  • Prefer strict tables in SQLite — near-consensus that STRICT should be the default ran into SQLite's compatibility philosophy; the APSW author's history lesson landed best: "SQLite is competition for fopen, not Oracle/Postgres". (Hacker News · 215 pts, 105 comments)
  • Why we built yet another Postgres connection pooler — PgDog's rationale (keeping SET and LISTEN/NOTIFY alive under transaction pooling) escalated into the Vitess-for-Postgres race — Supabase Multigres vs PlanetScale Neki — with PlanetScale's CEO claiming production customer moves while sidestepping the is-it-open-source question. (Hacker News · 154+ pts, 40+ comments — early snapshot)

Commercial engines (SQL Server, Oracle, MySQL, …)

  • Running DuckDB as a MySQL 9.7 storage engine — experimental ENGINE=DuckDB via the new handlerton::pushdown_select hook, regenerating whole SELECTs as DuckDB SQL only when provably semantics-identical (collations, NULL order, decimal scale); TPC-H SF10 in ~15 s vs InnoDB's 1,317 s, and LOAD DATA rerouted to DuckDB COPY loads 600M rows in ~20 min instead of 80. (Evgeniy Patlan · Percona)

Migration experience

  • Four ways to move between Postgres Kubernetes operators — same-pgBackRest-repo standby, streaming standby, backup/restore, and PV reuse (bind the retained PGDATA volume to the new operator: full downtime but no restore — fastest for huge datasets), with a downtime/rollback/DNS-caching comparison that applies to any operator swap. (Chetan Shivashankar · Percona)

Research & cutting edge

  • Breaking database lock-in: agentic regeneration of storage readers — LLM agents ingest format docs and source to synthesize direct readers of PostgreSQL/MySQL storage files emitting Arrow for DuckDB/Spark/cuDF; TPC-H-validated, up to 27x analytical throughput over JDBC — your heap format is the API now. (Giannakouris, Trummer · Cornell, AIDB @ VLDB 2026) [paper]
  • Eiger: an efficient library for GPU-based data analytics — runtime-adaptive GPU operator library that keeps multiple implementations per operator and picks using on-the-fly statistics (value ranges, HyperLogLog++); up to 1.8x whole-TPC-H (SF100) and 6.1x per query vs cuDF. (Wu, Kabić, Hepkema, Mageirakos, Kozyrakis, Alonso · ETH/Stanford) [paper]

International (non-English sources)

  • Postgresso #5 (90) — the Russian Postgres roundup — the RU counterpart of Postgres Weekly; this issue pins PG19 Beta 2 to Jul 16 with a Jul 11 fix cutoff. (Igor Levshin · Postgres Professional) [ru] (orig: «Postgresso #5 (90)»)
  • "The Design of POSTGRES" (1986), fully translated — the Stonebraker/Rowe design paper in Russian for the project's 30th birthday: the origin document of the codebase you hack on. (Postgres Professional · Habr) [ru] (orig: «Проектирование POSTGRES: как задумывалась популярная СУБД»)
  • A skeptic's read of ClickHouse Open House 2026 — dissects the managed-Postgres "5x vs RDS" claim (local NVMe vs network storage; price never compared) amid the ClickStack / Agents / IPO-prep announcements — the anti-marketing work done for you. (Maksim Yudin · Habr) [ru] (orig: «Пока все хоронили пайплайны, ClickHouse достраивал слои»)
  • PostgreSQL turns 30 — commit-timestamp forensics of the birthday — first commit d31084e landed 1996-07-09 06:22:35 UTC, i.e. Jul 8, 23:22 PDT — settling the Jul 8-vs-9 debate, with a 30-year feature timeline. (Ruohang Feng · vonng) [zh] (orig: «PostgreSQL 三十岁生日快乐»)
  • Instant database clones on PG18 copy-on-writefile_copy_method = clone gives constant-time database cloning on XFS/CoW file systems, wrapped in the author's own CLI; notes Aliyun RDS just shipped the same trick. (Ruohang Feng · vonng) [zh] (orig: «瞬间克隆 PostgreSQL 数据库,无需黑魔法»)
  • Multigres v0.1 alpha: Vitess-style clustering for Postgres, explained — Supabase's consensus/pooling/failover architecture walked through for the JP audience, with the honest caveat that v0.1 ships no sharding yet. (Junichi Niino · Publickey) [ja] (orig: «PostgreSQLをクラスタ化した分散DB「Multigres v0.1」アルファ版が登場»)
  • The double life of default_statistics_target — one GUC, two jobs: ANALYZE sample size (300 × target, per Chaudhuri et al.) and MCV/histogram resolution — with a demo where 1,000 histogram buckets flip a bad index-scan plan to a 30x-faster bitmap scan. (Alain Lesage · Dalibo) [fr] (orig: «La double vie de default_statistics_target»)

New sources added this week

  • pgdog.dev/blog (Lev Kokotov) — pooler/sharding internals written by the implementer.
  • blog.vonng.com (Ruohang Feng) — high-signal Chinese Postgres-ecosystem essays, two strong items this week; EN mirrors at /en/. [zh]
  • publickey1.jp (Junichi Niino) — server-rendered, reliably fetchable Japanese DBMS/cloud journalism. [ja]
  • mariadb.org blog — MariaDB Foundation engine-level write-ups (source of the DuckDB-storage-engine line of work).

~38 items · sources scanned: postgres git via pgsql-committers archive (≈86 commits, Jul 6–11 as listed), pgsql-hackers via mail-archive per-day search (msg232612–233257, Jul 6–11), pgsql-general (index stale — nothing verifiable), pgsql-performance (mirror still silent since May 11), CommitFest #59/#60/#61 (status summaries + #61 activity live; #59 activity stale), postgresql.org news + events, Postgres Weekly #656, Hacker News (hntoplinks/hckrnews + cached item pages), arXiv cs.DB 2026-07 month listing, engine release pages (SQLite, DuckDB, MongoDB, CockroachDB, TiDB, MariaDB — none in-window), Habr + Postgres Pro [ru], vonng [zh], Publickey + SRA OSS [ja], Dalibo [fr], Cybertec DE [de] (nothing in-window) · filtered out as marketing/ads: ~12 · out-of-window: several (incl. ClickHouse 26.6, Jul 3).

Source note: no browser was connected this run, and plain-fetch caches were widely stale — Planet PostgreSQL frozen at Jul 4 (in-window blog coverage reconstructed via Postgres Weekly #656 plus direct blog fetches; Planet-only authors may be under-sampled), mail-archive index pages frozen (walked via per-day searches instead), the CF59 activity log cut at Jun 24 (flow reported via queue totals), arXiv /recent stale (the July month listing was fresh), HN item pages served from earlier cached snapshots. Lobsters, Reddit and DBA StackExchange were unreachable without a browser; pgsql-bugs has no fetchable archive for the current era and was covered via hackers cross-references. The polyglot-search backend was unavailable; Chinese/Japanese coverage came from native-language web search and direct feeds. Sunday Jul 12 had thin archive coverage — a late-Sunday commit or thread may be missing.