DBMS Weekly — 2026-07-27 (week of 2026-07-27–2026-08-02)
Another quiet announce week (postgresql.org's only in-window post was a plRuby revival), so the story is again in the commit stream and the writing. PG19 beta stabilization continued: the release notes gained their official "major features" list, a one-line fix turned autovacuum's new prioritization right-side-up, and Tom Lane spent Sunday closing memory-safety holes in the text-search dictionary loader. Outside core, the week's two loudest items were a 3D "working model" of the Postgres engine that hit ~930 points on HN, and Wiz disclosing a takeover of every database in Azure Cosmos DB.
PostgreSQL
- The v19 release notes got their "major features" list — the release team's own headline picks are now in the notes (backpatched to 19 only), i.e. this is the shape of the GA pitch; reviewed by Michael Banck. (Nathan Bossart · pgsql-committers)
[committed] - Autovacuum's new triage was sorted backwards — PG19 taught autovacuum to score databases (wraparound risk, dead tuples) instead of working in catalog order, but
db_comparator()passed its args topg_cmp_s32()in the wrong order, so workers visited databases by ascending score — least deserving first. One-line beta fix; exactly what betas are for. (Nathan Bossart · pgsql-committers)[committed] - Hash Join perf fix when hashing NULLs — follow-up to the expression-level hashing work (adf97c156/9ca67658d): strict-mode hashing that aborts early on a NULL key mishandled the intermediate hash value carried across multiple hash keys, and the
EEOP_HASHDATUM_*_STRICTsteps didn't return NULL the way the caller expected. (David Rowley · pgsql-committers)[committed] - Planner nullability fix for ScalarArrayOpExpr —
find_nonnullable_rels/varstreated a ScalarArrayOpExpr that could return FALSE as strict, which is only valid at the top level of a qual; below that, the planner must insist on a guaranteed-NULL result before deducing nullability. Wrong deductions here feed outer-join simplification, so this is a correctness fix, not cosmetics. (Tom Lane · pgsql-committers)[committed] - Logical replication & decoding hardening, continued — another weekly cluster: sequence-sync workers now notice
ALTER SUBSCRIPTION … DISABLEinstead of running on a stale subscription copy (Amit Kapila); a race when enabling logical decoding concurrently and races between decoding deactivation on standbys and slot creation (replay of a status-change record or promotion vs.CREATE_REPLICATION_SLOT) (Masahiko Sawada); logical decoding of empty prepared transactions — a 2PC xact with an XID but no decodable change (e.g. onlySELECT … FOR SHARE) has no base snapshot and is now skipped consistently (Masahiko Sawada); plus avoiding relation-lock accumulation during sequence sync.[committed] - Cascading standby reconnect failure after archive fallback — a cascading standby could refuse to reconnect to its upstream with "requested starting point … is ahead of the WAL flush position": archive recovery consumes whole segment files, so the downstream's request could outrun what the upstream had flushed. (pgsql-committers)
[committed] - walsummarizer un-wedged at timeline switches — second summarizer fix in two weeks: it only read WAL from files whose TimeLineID matched exactly, but on a timeline switch the old timeline's last file may never be archived, leaving the summarizer waiting forever. (Robert Haas · pgsql-committers)
[committed] - Tom Lane's Sunday sweep: text-search dictionary memory safety — the ispell/hunspell loader allocated
CompoundAffixwithout room for its terminator, used an uninitialized flag buffer, and accepted incomplete Hunspell AF aliases; cache-entry creation was tightened alongside. Unlikely on real dictionary files, "but they're certainly bugs" — backpatched across all branches. (Tom Lane · pgsql-committers)[committed] - Master grab-bag — an SSL modernization run replacing APIs deprecated by OpenSSL 4.0 (Daniel Gustafsson); the in-progress online data-checksums work learned to handle invalid and dropped databases; a PGPROC lookup race when terminating background workers (fields read after releasing ProcArrayLock); pg_resetwal rejects a zero next multixact offset; Visual Studio 2026 support for pre-17 build scripts; and tzdata 2026c.
[committed] - Zalando Postgres Operator 2.0 — first major-version bump in years for one of the most widely deployed Kubernetes Postgres operators (v2.0.0 Jul 27, quick v2.0.1 fix Jul 29).
- plRuby is back — Command Prompt announced a revived PL/Ruby procedural-language handler; niche, but the PL ecosystem rarely grows. (postgresql.org news, Jul 31)
Reading
- PostgreSQL's MVCC is bad. So is everyone else's. — the week's best read: reproduces all four classic charges (write amplification, bloat, idle-snapshot poisoning, XID wraparound) on a live PG19 beta2, then audits what Oracle/InnoDB undo, SQL Server's tempdb version store, WiredTiger's cache, and LSM engines pay instead — including SQL Server spending years of engineering (ADR) to buy the constant-time abort Postgres has had for free. The four questions to ask any "we solved MVCC" claim are worth stealing. (Radim Marek · boringsql.com)
- Waiting for PostgreSQL 19: SQL Property Graph Queries (SQL/PGQ) — depesz works through
CREATE PROPERTY GRAPHandGRAPH_TABLEwith his usual runnable examples. (Hubert Lubaczewski) - Data lineage in PostgreSQL 19 via SQL/PGQ — a genuinely useful application of the same feature: store pipeline edges as tables, declare a property graph over them, and answer "where did this report number come from" / "what breaks if I change this loader" in one query; honest caveat that PG19's GRAPH_TABLE lacks variable-length paths, so deep chains still need
WITH RECURSIVE. (Hans-Jürgen Schönig · cybertec)[vendor blog — substantive] - Introducing pg-java, a new PostgreSQL driver for the JVM — a from-scratch JVM driver from a longtime pgjdbc maintainer, developed under the pgjdbc org; worth watching for anyone who has fought the 20-year-old JDBC codebase. (Sehrope Sarkuni)
- SQL Improvements in PostgreSQL 11–18: A Personal Selection — Dimitri Fontaine's tour of eight versions of accumulated SQL: procedures, generated columns, MERGE, multirange, JSON_TABLE and friends — a good "what did I miss while running old versions" checklist. (Dimitri Fontaine)
- Highlights of Fujitsu's contribution in PostgreSQL 19 — first-party rundown of the sequence-synchronization and logical-replication work (much of it patched again this very week, see above). (Hayato Kuroda · Fujitsu)
[vendor blog — substantive] - PostgreSQL 18's extension_control_path — how the new GUC decouples extension installation from the server image — the missing piece for immutable/container deployments. (Muhammad Aqeel · pgEdge)
[vendor blog — substantive] - Let's Break Autovacuum: Reproducing Failures to Make It Observable — deliberately drives autovacuum into its failure modes (long transactions, cost limits, worker starvation) to derive what's actually worth monitoring. (Nikolay Sivko · Coroot)
[vendor blog — substantive] - The right way to give a third-party DBA access to your database — scoped roles for monitoring, canceling runaway queries, vacuum/reindex — without handing over ownership or superuser. (Shridhar Khanal · Stormatics)
Community pulse
- PGSimCity — How PostgreSQL Works, in 3D — Nikolay Samokhvalov built a SimCity-style interactive 3D model of the Postgres engine: wander around buffers, WAL, and vacuum, and break things to see what happens. Self-labelled "early, reviewed prototype" with a correction template — and the standout community artifact of the week. (Hacker News · 928 pts, 92 comments) site
- SQLite in Production: Optimizing WAL Mode, Concurrency, and VFS Layers — practical WAL-mode/VFS tuning write-up whose thread turned into a referendum on SQLite-as-server-database. (Hacker News · 258 pts, 77 comments)
- Making Postgres queues scale — DBOS follows up last week's LISTEN/NOTIFY piece with the queue-side story (batching, SKIP LOCKED, partitioned queue tables); the thread is the usual—and useful—"just use Kafka" vs. "Postgres is enough" fight. (Hacker News · 126 pts, 33 comments) article
- Choose DuckDB rather than SQLite — opinionated comparison; the pushback in the comments (OLTP vs OLAP, durability defaults) is better calibrated than the article. (Hacker News · 87 pts, 57 comments)
Wider DBMS & distributed data
- CosmosEscape: taking over every database in Azure Cosmos DB — Wiz escaped Cosmos DB's custom .NET Gremlin sandbox via reflection, got code execution on the multi-tenant DB Gateway, and found a platform-wide signing key (the "Cosmos Master Key") that could fetch the primary key of any account — plus a Config Store to enumerate targets by tenant. Reported Nov 2025, hot-fixed in 48h, architectural fix completed and disclosed Jul 30; Microsoft says no evidence of exploitation. The sharpest multi-tenant-isolation postmortem you'll read this year. (Wiz Research)
Research & cutting edge
- Two-sided RDMA Striking Back for Disaggregated Memory Databases — revisits the one-sided-RDMA orthodoxy for disaggregated-memory transactions; from Xiangyao Yu's Wisconsin group. (Cha, Akella, Yu · Jul 28) [paper]
- Revisiting the Algebraic Foundation of Relational Data — proposes Tarski's algebra of relations (predating Codd by a century) as an alternative foundation for relational databases. (Yisu Remy Wang, Paul Talma · Jul 29) [paper]
- Fully Inductive Cardinality Estimation — a learned estimator for graph-pattern queries that transfers to unseen knowledge graphs without retraining — attacking the main practical objection to learned cardinality estimators. (Schwabe, Ketzer, Acosta · Jul 30) [paper]
- MERIT: Efficient In-Place Deletion for Dynamic Graph-Based ANN Indexes — real deletion (not tombstoning) for HNSW-style vector indexes; directly relevant to the pgvector-under-churn problem. (Wu, Jin et al. · Jul 31) [paper]
International (non-English sources)
- Double booking: catching a write race and closing it with an EXCLUDE constraint — a booking-service war story done right: why check-then-insert races past advisory locks (they're a convention, not a guarantee),
EXCLUDE USING gist (… WITH =, tstzrange(…) WITH &&)withbtree_gistas the real moat, the IMMUTABLE trap when the interval end is computed (timestamptz + intervalis only STABLE — wrap deterministic minute-arithmetic in an IMMUTABLE function, and don't lie to the planner about month arithmetic), and SAVEPOINTs to turn the constraint violation into a polite "slot taken". (Denis Melnikov · habr.com) [ru] (orig: «Двойная бронь: как мы поймали гонку в записи и закрыли её EXCLUDE-констрейнтом») - One difference between the Postgres and Oracle optimizers — migration field note: Oracle can stop a
row_number() OVER (ORDER BY …)early under arn=1filter (window-with-stopkey), Postgres computes the full window first — and how to rewrite the query to get the Oracle-era plan back. (GNIVC · habr.com) [ru] (orig: «Об одном различии работы оптимизатора Postgres и Oracle»)
Upcoming events
- Hacking Workshop, September 2026 — Robert Haas's discussion series hosts David Rowley on Optimizing code in the hot path, with examples from tuple deformation; sign-ups open, watch the talk beforehand and bring questions. No prerequisites — first-time patch writers welcome.
New sources added this week
- Coroot blog — infra-observability vendor whose Postgres posts reproduce failure modes instead of listing metrics; kept after the autovacuum piece. link
- launchbylunch.com (Sehrope Sarkuni) — pgjdbc maintainer's blog; primary source for the new pg-java driver line of work. link
~24 items · sources scanned: pgsql-committers via mail-archive (thread index fresh through Aug 2; msg47528–47692 ≈ this week's commits, boundary timestamps verified in −0700), postgresql.org news archive (one in-window post), Planet PostgreSQL rss20.xml (live, covered the full window — 23 in-window posts), Postgres Weekly #659, live HN via the Algolia API (points/comments verified in-window), arXiv cs.DB July month listing (submission dates verified per paper), GitHub releases API, Habr PostgreSQL hub [ru], blog.vonng.com [zh] (reachable again, nothing in-window) · filtered out as marketing/ads: ~8 (sponsor slots, product-only release notes, a Show-HN cloud pitch, an audit listicle, a course-blog reblog) · out-of-window: pg_partman 5.5 with CVE fixes (Jul 22), pgEdge's autovacuum-tweaks explainer (Jul 24 — context for the sort-order fix above), and Andrei Lepikhov's "Why your pioneering Postgres feature should start in a fork" (Jul 26, surfaced by Postgres Weekly this week).
Source note: browser-assisted run end-to-end. Mailing lists — pgsql-hackers/-bugs archives were again not usably reachable; core coverage is the pgsql-committers stream (what actually landed), with committer names verified per message. CommitFest — not sampled this run; commit ground-truth shows the beta-stabilization pattern continuing (logical replication/decoding, planner correctness, recovery edge cases). Community pulse ranked from live HN Algolia data; the boringsql MVCC post's own HN threads peaked at 33 pts, so it's listed as an article, not a thread. DB Weekly is confirmed dormant (site says "archives only", 360 issues) and retired from the source list.