<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DBMS Digest</title>
    <link>https://danolivo.github.io/dbms-digest/</link>
    <description>A weekly, ad-free, fact-checked roundup of PostgreSQL &amp; wider DBMS internals, news, and research. Monday → Sunday.</description>
    <language>en</language>
    <lastBuildDate>Wed, 24 Jun 2026 13:14:16 +0000</lastBuildDate>
    <atom:link href="https://danolivo.github.io/dbms-digest/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>DBMS Weekly — 2026-06-15 (week of 2026-06-15–2026-06-21)</title>
      <link>https://danolivo.github.io/dbms-digest/digests/2026-06-15.html</link>
      <guid isPermaLink="false">dbms-digest-2026-06-15</guid>
      <pubDate>Mon, 15 Jun 2026 12:00:00 +0000</pubDate>
      <content:encoded><![CDATA[<h2>PostgreSQL</h2>
<ul>
<li><strong><a href="https://posetteconf.com/2026/schedule/">POSETTE: An Event for Postgres 2026 is a wrap — all 44 talks on YouTube</a></strong> — the free virtual event (Jun 16–18, organised by the Postgres team at Microsoft) ran four livestreams; every talk is now un-gated on YouTube. The internals-relevant picks for a hacker:<ul>
<li><strong><a href="https://www.youtube.com/watch?v=Vw4WKeoxKq4">Postgres 19 Hackers Panel: What's In, What's Out, &amp; What's Next</a></strong> — Álvaro Herrera, Heikki Linnakangas, Melanie Plageman, and Thomas Munro on what made the PG19 feature freeze and what stalled. <em>(keynote)</em></li>
<li><strong><a href="https://www.youtube.com/watch?v=lbrWJgl8uDQ">random_page_cost — why the default is 4.0 and should you lower it?</a></strong> — Tomas Vondra dissects the planner's random-vs-sequential I/O cost ratio and when the SSD-era default misleads.</li>
<li><strong><a href="https://www.youtube.com/watch?v=F2DJuDX6XHg">Fuzzing PostgreSQL</a></strong> — Adam Wolk applies fuzzing to libpq, the client library that parses every server message; a template for finding edge-case bugs in stateful C code.</li>
<li><strong><a href="https://www.youtube.com/watch?v=T7lrE22tgkg">The Wonderful World of WAL</a></strong> — Bruce Momjian walks the write-ahead log as the substrate for crash recovery, PITR, and physical/logical replication.</li>
<li><strong><a href="https://www.youtube.com/watch?v=CvvA5P1b5No">pg_stats: How Postgres Internal Stats Work</a></strong> — Richard Yen on the statistics model behind seq-scan-vs-index-scan planner decisions.</li>
<li><strong><a href="https://www.youtube.com/watch?v=oZHhjDD0R74">Journey of developing a performance optimization feature in PostgreSQL</a></strong> — Rahila Syed on systematically diagnosing and fixing an internals bottleneck end-to-end.</li>
<li><strong><a href="https://www.youtube.com/watch?v=2XPsRAS-sP4">Past, Present, and Future: Logical Decoding and Replication</a></strong> — Hari Kiran traces the arc from the low-level decoding API to today's logical replication.</li>
<li><strong><a href="https://www.youtube.com/watch?v=LUKCoxAjBrM">Exploring property graphs with SQL/PGQ in PostgreSQL</a></strong> — Ashutosh Bapat on the in-core graph-query syntax landing in PG19.</li>
</ul>
</li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_kpart-version-10-3316/">pg_kpart 1.0</a></strong> — new extension that <em>rejects</em> any query against a protected partitioned table that can't prune a single partition, turning "always filter on the partition key" from convention into a database-enforced guarantee. <em>(Gilles Darold · HexaCluster)</em><ul>
<li>throws a clear error (with a dedicated SQLSTATE) instead of letting a key-less query trigger a server-wide full-hierarchy scan</li>
<li>audit mode for staged rollout; blacklist/whitelist scoping to target specific tables</li>
</ul>
</li>
<li><strong><a href="https://www.postgresql.org/about/news/powa-archivist-512-is-out-3317/">powa-archivist 5.1.2</a></strong> — the core collector of the PostgreSQL Workload Analyzer project ships a maintenance release. <em>(PoWA team · Marc Cousin)</em><ul>
<li>new: per-module retention (set different history-retention windows per collected extension)</li>
<li>compatible with all supported PostgreSQL versions</li>
</ul>
</li>
</ul>
<h2>PostgreSQL mailing lists</h2>
<ul>
<li><strong><a href="http://www.mail-archive.com/pgsql-hackers@lists.postgresql.org/msg231273.html">[hackers] Conflict log history table for Logical Replication — a lost-conflict bug surfaces</a></strong> — the PG20-targeted feature that lets a subscription log apply-time conflicts to a system-managed table (in a <code>pg_conflict</code> schema) instead of just the server log saw heavy review this week. vignesh C reported a real defect: a concurrent <code>ALTER SUBSCRIPTION</code> that switches the conflict-log destination drops the log table while the apply worker still holds its cached OID, so <code>table_open()</code> fails, the worker exits (code 1), and the conflict record is logged <em>nowhere</em>; reviewers also flagged that arbitrary objects (extensions, collations, operators) can be created in <code>pg_conflict</code> and that <code>DROP</code> of the log table errors inconsistently with INSERT/UPDATE. <em>(vignesh C, Peter Smith, Shlok Kyal, Amit Kapila · pgsql-hackers)</em> <code>[patch posted]</code></li>
</ul>
<h2>CommitFest (open: PG20-1, #59)</h2>
<ul>
<li><strong>Balance (Jun 15–21):</strong> PG20-1 is in its collection phase (in-progress Jul 1–31) and saw net inflow — several new patch records, a few committed/withdrawn. This is the first week the digest tracks the CommitFest, so the week-over-week delta baseline starts now; absolute totals will be diffed from next run. <em>(source: per-CF activity log)</em></li>
<li><strong>New this week:</strong> <strong><a href="https://commitfest.postgresql.org/59/6918/">Global temporary tables</a></strong> <em>(deanr)</em> — a fresh patch record for the long-requested GTT feature: tables whose definition is shared cluster-wide but whose rows and statistics stay private to each session (the SQL-standard / Oracle-style global temp table Postgres still lacks). Also new: <strong><a href="https://commitfest.postgresql.org/59/6916/">PROXY protocol support</a></strong> (#6916 — lets the backend see the real client address behind a load balancer) and <strong><a href="https://commitfest.postgresql.org/59/6915/">pg_dump: skip pg_init_privs entries for non-existent roles</a></strong> (#6915, Hüseyin Demir).</li>
<li><strong>Closed in-window:</strong> <em>Fix PL/Python crash when a SRF is redefined mid-execution</em> (#6917, filed and committed same day by Tom Lane) and <em>Fix publisher-side sequence permission reporting</em> (#6911, committed); <em>pg_restore --no-globals output for pg_dumpall archives</em> (#6899) withdrawn.</li>
</ul>
<h2>Wider DBMS &amp; distributed data</h2>
<ul>
<li><strong><a href="https://www.youtube.com/watch?v=U3ssJlQAJuA">Why we built Azure HorizonDB for PostgreSQL</a></strong> — Dingding Lu (POSETTE) on Microsoft's new cloud-native, Postgres-compatible engine that decouples storage to keep latency predictable under spiky traffic and scale reads without external bolt-ons; a useful look at how a major vendor is re-architecting Postgres for the cloud. <em>(Microsoft · posetteconf.com)</em></li>
<li><strong><a href="https://www.youtube.com/watch?v=9COYCHn1MuU">pg_lake: Postgres as a lakehouse</a></strong> — Marco Slot (POSETTE) on the extension approach to making Postgres a competent analytics/lakehouse front-end (Iceberg/object-storage interaction) rather than bolting on a separate warehouse. <em>(posetteconf.com)</em></li>
</ul>
<h2>Migration experience</h2>
<ul>
<li><strong><a href="https://www.youtube.com/watch?v=i4mbsBs1wOE">Migrating VLDBs from Oracle to Azure Database for PostgreSQL</a></strong> — Adithya Kumaranchath (POSETTE) shares field-tested strategies for moving multi-terabyte Oracle databases onto a managed Postgres service, where the cloud target adds real constraints over a self-managed migration. <em>(posetteconf.com)</em></li>
</ul>
<h2>International (non-English sources)</h2>
<ul>
<li><strong><a href="https://qiita.com/harukat1232000/items/272cc7df4ec94b87b6a8">PostgreSQL 19 ushers in a new era of temporal-table design (Part 1)</a></strong> — converts pgbench's standard schema to a temporal design using <code>tsrange</code> <code>valid_at</code> columns, <code>PRIMARY KEY … WITHOUT OVERLAPS</code>, <code>btree_gist</code>, and PG19's <code>UPDATE … FOR PORTION OF</code>; EXPLAIN ANALYZE shows point-in-time lookups stay cheap (Index Scan / Bitmap Index Scan on a single GiST index). Argues Postgres is now uniquely suited to temporal tables — the only major engine combining a range-overlap index with <code>WITHOUT OVERLAPS</code> primary keys — versus SQL Server's split current/history-table approach. <em>(harukat · SRA OSS · qiita.com)</em> [ja] <em>(orig: 「PostgreSQL19でテンポラルテーブル設計の新時代へ(1)」)</em></li>
</ul>
<h2>New sources added this week</h2>
<ul>
<li><strong><a href="https://www.pghackers.com/">pghackers.com — PostgreSQL Hackers Explorer</a></strong> — AI-assisted search/exploration over the pgsql-hackers archive; potentially a faster way to triage in-window threads than the raw monthly index. <em>(surfaced via search; evaluate over coming weeks)</em></li>
</ul>
<hr />
<p><em>11 items · sources scanned: ~31 (Planet PostgreSQL, PostgreSQL news archive, pgsql-hackers via mail-archive.com, CommitFest PG20-1 activity log, pganalyze, thebuild.com, POSETTE, Qiita [ja], Habr [ru], modb.pro [zh], arXiv cs.DB) · international: 1 (ja) · filtered out as marketing/ads: ~6 (incl. recycled Crunchy↔Snowflake from 2025, vendor product talks). Community pulse, Research, and a ru/zh International item omitted: nothing could be confirmed inside the Jun 15–21 window without fabricating links or engagement counts.</em></p>]]></content:encoded>
    </item>
    <item>
      <title>DBMS Weekly — 2026-06-14 (week of 2026-06-08–2026-06-14)</title>
      <link>https://danolivo.github.io/dbms-digest/digests/2026-06-08.html</link>
      <guid isPermaLink="false">dbms-digest-2026-06-08</guid>
      <pubDate>Mon, 08 Jun 2026 12:00:00 +0000</pubDate>
      <content:encoded><![CDATA[<h2>PostgreSQL</h2>
<ul>
<li><strong><a href="https://thebuild.com/blog/how-the-other-half-counts/">How the Other Half Counts</a></strong> — Christophe Pettus surveys how Oracle, Db2, MySQL, SQLite, DuckDB, and Snowflake gather planner statistics vs. PostgreSQL's sampling <code>ANALYZE</code>; the real axis turns out to be stats freshness and who owns it, not the join algorithm. <em>(thebuild.com)</em></li>
<li><strong><a href="https://thebuild.com/blog/all-your-gucs-in-a-row-deadlocktimeout/">All Your GUCs in a Row: deadlock_timeout</a></strong> — clarifies that <code>deadlock_timeout</code> sets how <em>often</em> PostgreSQL checks for a deadlock, not how long a deadlock is tolerated; part of a near-daily GUC-internals series. <em>(Christophe Pettus · thebuild.com)</em></li>
<li><strong><a href="https://thebuild.com/blog/all-your-gucs-in-a-row-datestyle/">All Your GUCs in a Row: DateStyle</a></strong> — on why <code>DateStyle</code> conflates two unrelated behaviours (input parsing and output formatting) in a single GUC. <em>(Christophe Pettus · thebuild.com)</em></li>
<li><strong><a href="https://thebuild.com/blog/all-your-gucs-in-a-row-datasyncretry/">All Your GUCs in a Row: data_sync_retry</a></strong> — the GUC born from the Postgres fsync-reliability durability saga, and why the default is what it is. <em>(Christophe Pettus · thebuild.com)</em></li>
<li><strong><a href="https://proopensource.it/blog/postgresql-19-features">My Three Top PostgreSQL 19 Features</a></strong> — Stefanie Janine walks through <code>INSERT ... ON CONFLICT DO SELECT</code>, the new in-core <code>REPACK</code> (with <code>CONCURRENTLY</code>), and SQL/PGQ graph queries landing in PG19. <em>(proopensource.it)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/postgresql-anonymizer-31-introducing-local-differential-privacy-3311/">PostgreSQL Anonymizer 3.1: local differential privacy</a></strong> — Dalibo's data-masking extension adds local-differential-privacy masking techniques (announcement light on detail; verify changelog before relying on it). <em>(Dalibo · postgresql.org)</em></li>
</ul>
<h2>PostgreSQL mailing lists</h2>
<ul>
<li><strong><a href="https://www.postgresql.org/message-id/flat/CAM527d_2OpJ3KCOT1QqGh4neCPpgZTgM%2BVUxTqVgOSweOzTDQw%40mail.gmail.com">[hackers] FK fast-path: OOB write + missed FK checks during batched RI checks</a></strong> — three defects in PG19's new batched foreign-key fast path (an out-of-bounds write and two paths silently committing FK-violating orphan rows); reproducers confirmed, the fix is pushed and on the PG19 Open Items list. Data-integrity regression in a just-shipped beta feature. <em>(Amit Langote · pgsql-hackers)</em> <code>[committed]</code></li>
<li><strong><a href="https://www.postgresql.org/message-id/flat/CAEze2WihVmsjrEdMXmqhmsy-R8puBjopuvpqmHYwFP_usF%2BaSw%40mail.gmail.com">[hackers] Commit Sequence Numbers and Visibility (CSN snapshots)</a></strong> — Jeff Davis proposes concrete rules for CSN-based snapshot acquisition; Matthias van de Meent pushes back that coupling snapshot acquisition to durability would impose synchronous-flush waits on readers, counter-proposing separate durability-horizon WAL records. Core architectural debate for a future MVCC redesign. <em>(Jeff Davis · pgsql-hackers)</em> <code>[open]</code></li>
<li><strong><a href="https://www.mail-archive.com/pgsql-hackers%40postgresql.org/msg230264.html">[hackers] RFC: a constraint-enforcement layer for cross-partition uniqueness</a></strong> — Greg Burd reframes the perennial "global unique index on partitioned tables" problem as a separate <code>pg_constraint_method</code> abstraction (a lightweight WAL-logged membership map) instead of a full global index, citing prior global-index attempts. <em>(Greg Burd · pgsql-hackers)</em> <code>[open]</code></li>
<li><strong><a href="https://www.mail-archive.com/pgsql-hackers%40postgresql.org/msg230280.html">[hackers] Any JIT-compiled query crashes (SIGILL) on libLLVM 19 + ASAN CI build</a></strong> — cfbot failures blamed on the Row Pattern Recognition patch turn out to be a feature-independent crash: on the ASAN+LLVM 19.1 config any JIT-compiled query SIGILLs on plain master; minimal repro and regression test posted. Was masking real CI signal on in-flight patches. <em>(pgsql-hackers)</em> <code>[patch posted]</code></li>
</ul>
<h2>Community pulse</h2>
<ul>
<li><strong><a href="https://news.ycombinator.com/item?id=48476466">PgDog is funded and coming to a database near you</a></strong> — a funding post for a Rust connection-pooler/sharder for Postgres became the week's biggest DB thread; the substance is the 261-comment debate over whether sharding belongs in a proxy and how it compares to PgBouncer / PgCat / Citus. <em>(Hacker News · 548 pts, 261 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48478148">Show HN: HelixDB — a graph database built on object storage</a></strong> — an OLTP graph DB on S3 with native vector + FTS drew a long back-and-forth on the latency trade-offs of running transactions against cold object storage. <em>(Hacker News · 158 pts, 46 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48444784">Spanish traders set the standard for GnuCash database design</a></strong> — an essay on how centuries-old double-entry bookkeeping prefigured GnuCash's schema turned into an 82-comment thread on modelling money in a relational database. <em>(Hacker News · 133 pts, 82 comments)</em></li>
</ul>
<h2>Wider DBMS &amp; distributed data</h2>
<ul>
<li><strong><a href="https://planetscale.com/blog/the-only-scalable-delete">The only scalable delete in Postgres is DROP TABLE</a></strong> — argues that under MVCC, bulk <code>DELETE</code> doesn't cheaply reclaim space (dead tuples, VACUUM, bloat), so partition-drop / <code>DROP TABLE</code> is the only delete that scales; lively HN discussion. <em>(planetscale.com)</em></li>
<li><strong><a href="https://muratbuffalo.blogspot.com/2026/06/our-mongodb-tla-workshop.html">Our MongoDB TLA+ workshop</a></strong> — Murat Demirbas reports an order-of-magnitude better onboarding when LLM assistance removes TLA+ syntax as the barrier, letting engineers formally model real replication/storage subsystems hands-on; includes a distilled "AI-assisted TLA+ best practices" guide. <em>(muratbuffalo.blogspot.com)</em></li>
<li><strong><a href="https://github.com/boringcollege/postgres-by-example">Postgres by Example</a></strong> — example-driven Postgres reference repo that surfaced on HN; useful as a teaching/cheat-sheet resource. <em>(github.com)</em></li>
</ul>
<h2>Commercial engines (SQL Server, Oracle, MySQL, …)</h2>
<ul>
<li><strong><a href="https://dev.to/franckpachot/rum-storing-more-in-the-index-4hoe">RUM: storing more in the index</a></strong> — Franck Pachot deep-dive on Postgres RUM indexes (carrying extra payload in the index to serve ESR-style equality/sort/range queries the way other engines' covering indexes do). <em>(dev.to)</em></li>
<li><strong><a href="https://dev.to/franckpachot/gin-understanding-postgresqls-inverted-index-and-its-limitations-40hn">GIN: understanding PostgreSQL's inverted index and its limitations</a></strong> — Pachot walks the internals and trade-offs of GIN indexing, with cross-engine framing. <em>(dev.to)</em></li>
</ul>
<h2>International (non-English sources)</h2>
<ul>
<li><strong><a href="https://habr.com/ru/companies/postgrespro/articles/1045532/">Postgres Pro evolves a "Virtual DBA" LLM agent's environment with record/replay</a></strong> — Postgres Professional ran an evolutionary search over a Postgres-diagnosis agent's setup (prompts, analysis steps, MCP tools) by recording and fast-replaying real workloads; a headline finding is that handing the agent <em>more</em> tools can actually worsen its final verdict. <em>(Postgres Professional · habr.com)</em> [ru] <em>(orig: «Промпты, RAG, LLM-тюнинг, Harness… Идём дальше?»)</em></li>
<li><strong><a href="https://habr.com/ru/articles/1047374/">Three discovery problems with Postgres master/replica — and a lightweight fix</a></strong> — finding the master after failover, picking a replica within an acceptable lag, and guaranteeing read-your-writes, solved with a small HTTP service (pg-status) instead of DNS/HAProxy hacks that don't understand replication LSN. <em>(krylosov-aa · habr.com)</em> [ru] <em>(orig: «Три задачи discovery при работе с PostgreSQL master/replica — и как их решить»)</em></li>
<li><strong><a href="https://2026.sigmod.org/sigmod_papers.shtml">OceanBase lands a batch of papers at SIGMOD/VLDB 2026</a></strong> — surfaced via the Chinese DB community 墨天轮; the Ant Group distributed-RDBMS vendor's top-venue haul, with three worth mining for our own engine: <em>TaCo</em> (query-aware subspace collision for high-dimensional ANN search), <em>ESTune</em> (Bayesian uncertainty-guided early stopping for knob tuning), and <em>Secure Multi-Party Sampling over Joins</em> (VLDB). <em>(墨天轮 / modb.pro)</em> [zh] <em>(orig: «OceanBase 多篇论文被国际顶会录用»)</em></li>
</ul>
<h2>Research &amp; cutting edge</h2>
<ul>
<li><strong><a href="https://arxiv.org/abs/2606.09133">Multiversion Concurrency Control for Multiversion B-Trees</a></strong> — cMVBT redesigns the multiversion B-tree with optimistic latches for writers and latch-free range scans plus continuous GC, beating version-chain MVCC on write throughput and arbitrary-version range scans. <em>(arXiv)</em> <em>[paper]</em></li>
<li><strong><a href="https://arxiv.org/abs/2606.09361">Bespoke-Card: synthesizing workload-specific cardinality estimators</a></strong> — generate a per-workload cardinality estimator instead of tuning one generic model. <em>(AIDB @ VLDB '26)</em> <em>[paper]</em></li>
<li><strong><a href="https://arxiv.org/abs/2606.10270">Determination Provenance: From Ambiguity to Algebra</a></strong> — Joseph M. Hellerstein gives an algebraic treatment of determination/provenance. <em>(arXiv)</em> <em>[paper]</em></li>
</ul>
<hr />
<p><em>23 items · sources scanned: ~30 · community threads scanned: HN (40 DB stories) · international: 3 (ru, zh) · filtered out as marketing/ads: 8</em></p>]]></content:encoded>
    </item>
    <item>
      <title>DBMS Weekly — 2026-06-07 (week of 2026-06-01–2026-06-07)</title>
      <link>https://danolivo.github.io/dbms-digest/digests/2026-06-01.html</link>
      <guid isPermaLink="false">dbms-digest-2026-06-01</guid>
      <pubDate>Mon, 01 Jun 2026 12:00:00 +0000</pubDate>
      <content:encoded><![CDATA[<h2>PostgreSQL</h2>
<ul>
<li><strong><a href="https://www.postgresql.org/about/news/postgresql-19-beta-1-released-3313/">PostgreSQL 19 Beta 1 released</a></strong> — first beta of PG19 lands (June 4) with in-core <code>REPACK [CONCURRENTLY]</code>, the <code>pg_plan_advice</code>/<code>pg_stash_advice</code> planner-stabilization extensions, parallel autovacuum (<code>autovacuum_max_parallel_workers</code>) plus a new vacuum-prioritization heuristic, and adaptive async-I/O worker scaling (<code>io_min_workers</code>/<code>io_max_workers</code>) building on PG18. <em>(Jonathan Katz · postgresql.org)</em></li>
<li><strong><a href="https://www.pgedge.com/blog/looking-forward-to-postgres-19-query-hints">Looking forward to Postgres 19: query hints, sort of</a></strong> — a tour of PG19's new <code>pg_plan_advice</code> / <code>pg_stash_advice</code> contrib modules that capture and reapply planner decisions by query id, ending the project's long "no hints" posture without actually being hints. <em>(Shaun Thomas · pgEdge)</em></li>
<li><strong><a href="https://github.com/microsoft/pg_durable">pg_durable: durable execution as a Postgres extension</a></strong> — Microsoft open-sources a pgrx/Rust extension that runs Temporal-style durable functions entirely inside Postgres: state checkpointed to tables, crash/failover recovery via deterministic replay, a SQL DSL (<code>~&gt;</code>, <code>|=&gt;</code>), and a background worker — no Redis, no external orchestrator. Preview, PostgreSQL 17. <em>(microsoft/pg_durable)</em></li>
<li><strong><a href="https://www.crunchydata.com/blog/the-integer-at-the-end-of-the-universe-integer-overflow-in-postgres">The integer at the end of the universe: integer overflow in Postgres</a></strong> — what actually happens when an <code>int4</code> sequence runs out of headroom, how to spot it before it bites, and how to migrate to <code>bigint</code> without a full-table-rewrite outage. <em>(Crunchy Data)</em></li>
<li><strong><a href="https://thebuild.com/blog/async-io-in-postgresql-19-the-year-after/">Async I/O in PostgreSQL 19: the year after</a></strong> — Christophe Pettus revisits the io_uring/AIO subsystem one release on, covering the new auto-scaling worker model and what changed for operators between 18 and 19. <em>(thebuild.com)</em></li>
<li><strong><a href="https://www.cybertec-postgresql.com/en/handling-graphs-with-sql-pgq-in-postgresql/">Handling graphs with SQL/PGQ in PostgreSQL</a></strong> — worked examples of the ISO SQL/PGQ property-graph syntax (<code>CREATE PROPERTY GRAPH</code>, <code>GRAPH_TABLE</code>) shipping in PG19, run over ordinary relational tables. <em>(Cybertec)</em></li>
<li><strong><a href="https://www.ubicloud.com/blog/postgresql-and-the-oom-killer-why-we-use-strict-memory-overcommit">PostgreSQL and the OOM killer: why we use strict memory overcommit</a></strong> — Ubicloud argues for <code>vm.overcommit_memory=2</code> so allocations fail predictably instead of the kernel killing a random backend (often the postmaster) under memory pressure. <em>(Lev Kokotov · ubicloud.com)</em></li>
<li><strong><a href="https://github.com/ChronicallyJD/pam_pg_sshkey">Authenticate PostgreSQL with SSH keys</a></strong> — a PAM module that lets Postgres verify connections against users' existing SSH public keys, reusing key infrastructure you already manage instead of yet another credential store. <em>(ChronicallyJD)</em></li>
</ul>
<h2>Community pulse</h2>
<ul>
<li><strong><a href="https://news.ycombinator.com/item?id=48414367">pg_durable: Microsoft open sources in-database durable execution</a></strong> — the week's biggest DB thread debated whether durable execution belongs <em>inside</em> the database at all vs. an external orchestrator, and what it means for crash semantics and operability. <em>(Hacker News · 474 pts, 108 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48377510">databow: a Rust CLI to query any database with an ADBC driver</a></strong> — discussion of using ADBC as a universal columnar wire layer, and whether it finally beats the ODBC/JDBC status quo for cross-engine tooling. <em>(Hacker News · 116 pts, 24 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48410522">Is Azure capacity this constrained, or am I doing it wrong?</a></strong> — an operator stuck behind "backlogged" quota approvals for Postgres Flexible Server and vCPU in multiple regions; the replies are a field guide to cloud-region capacity war stories. <em>(Hacker News · 11 pts, 15 comments)</em></li>
</ul>
<h2>Wider DBMS &amp; distributed data</h2>
<ul>
<li><strong><a href="https://columnar.tech/blog/introducing-databow/">databow: a Rust CLI to query any database with an ADBC driver</a></strong> — a single command-line tool that speaks to any database exposing an ADBC driver, returning Arrow columnar results without per-engine glue. <em>(columnar.tech)</em></li>
<li><strong><a href="https://ladybugdb.com/">Ladybug: the DuckDB of graph databases</a></strong> — an embeddable, single-binary property-graph engine pitched as the local-first analytics counterpart to DuckDB for graph workloads. <em>(ladybugdb.com)</em></li>
</ul>
<h2>Migration experience</h2>
<ul>
<li><strong><a href="https://medium.com/@ValentinMouret/functionally-migrating-from-firestore-to-postgresql-64947b5dff0d">Functionally migrating from Firestore to PostgreSQL</a></strong> — a from-the-trenches account of moving a document workload off Firestore onto Postgres: modelling collections as relational tables, preserving query semantics, and the cutover mechanics. <em>(Valentin Mouret)</em></li>
<li><strong><a href="https://www.crunchydata.com/blog/postgres-serials-should-be-bigint-and-how-to-migrate">Postgres serials should be bigint — and how to migrate</a></strong> — why <code>serial</code>/<code>int4</code> keys are a latent time bomb and a concrete, low-downtime procedure to widen them to <code>bigint</code> on a live table. <em>(Crunchy Data)</em></li>
</ul>
<h2>International (non-English sources)</h2>
<ul>
<li><strong><a href="https://habr.com/ru/articles/1044190/">2 + 2 = 6: fixing lost updates in Postgres</a></strong> — a systematic tour of race conditions under each isolation level with measured costs of each fix (SELECT FOR UPDATE, advisory locks, SERIALIZABLE, atomic UPDATE) on a real highload workload. <em>(nikolayschaback · Habr)</em> [ru] <em>(orig: «2 + 2 = 6 и как мы это фиксим: lost updates в Postgres»)</em></li>
<li><strong><a href="https://habr.com/ru/companies/skbkontur/articles/1043566/">Killing the REFRESH MATERIALIZED VIEW queue in PostgreSQL</a></strong> — SKB Kontur's hour-long MV refreshes were piling into a connection-hogging queue; they used <code>pg_try_advisory_xact_lock</code> per-MV plus trigger-tracked dependencies so a redundant REFRESH skips instead of waiting. <em>(makushevski · Habr / SKB Kontur)</em> [ru] <em>(orig: «Как мы убрали очередь из REFRESH MATERIALIZED VIEW в PostgreSQL»)</em></li>
<li><strong><a href="https://habr.com/ru/articles/1044476/">VARCHAR(N) in PostgreSQL is a constraint, not a memory saving</a></strong> — myth-busting the <code>varchar(255)</code> habit: Postgres stores the actual string regardless of the limit, so <code>N</code> buys you a check constraint, not packed storage; when it helps and when it's cargo-culted. <em>(alwaysdeterminated · Habr)</em> [ru] <em>(orig: «VARCHAR(N) в PostgreSQL: ограничение, а не экономия памяти»)</em></li>
</ul>
<h2>Call for papers</h2>
<ul>
<li><strong><a href="https://www.postgresql.org/about/news/pgconfpl-2026-call-for-papers-open-3312/">PostgreSQL Conference Poland — PGConf.PL 2026 — Gdańsk, Nov 24</a></strong> — the inaugural PGConf.PL; CfP opened this week (Jun 4), closes <strong>Jul 13, 2026</strong>. <em>(community)</em></li>
</ul>
<hr />
<p><em>18 items · sources scanned: ~30 · community threads scanned: Hacker News (Algolia, postgres+database queries) · international: Habr [ru] in-window; Dalibo [fr] and Qiita [ja] had no in-window items · filtered out as marketing/ads: ~14</em></p>]]></content:encoded>
    </item>
    <item>
      <title>DBMS Weekly — 2026-05-31 (week of 2026-05-25–2026-05-31)</title>
      <link>https://danolivo.github.io/dbms-digest/digests/2026-05-25.html</link>
      <guid isPermaLink="false">dbms-digest-2026-05-25</guid>
      <pubDate>Mon, 25 May 2026 12:00:00 +0000</pubDate>
      <content:encoded><![CDATA[<h2>PostgreSQL</h2>
<ul>
<li><strong><a href="https://dev.to/shinyakato_/5-postgresql-locking-behaviors-that-trip-people-up-4k7n">5 PostgreSQL locking behaviours that trip people up</a></strong> — counterintuitive production-outage locks from a PostgreSQL engineer: FIFO lock-queue chained blocking behind a waiting <code>ACCESS EXCLUSIVE</code>, invisible FK <code>FOR KEY SHARE</code> deadlocks, unique-check INSERT deadlocks, the wraparound-prevention autovacuum that refuses to be cancelled, and VACUUM's hidden truncate-phase <code>ACCESS EXCLUSIVE</code> (and how it force-cancels standby SELECTs via <code>max_standby_streaming_delay</code>). <em>(Shinya Kato · dev.to)</em></li>
<li><strong><a href="https://event-driven.io/en/how-soon-is-now-in-postgresql/">How soon is <code>now()</code>? A frozen-timestamp retry-loop bug</a></strong> — a real distributed-locking bug: <code>now()</code> returns the <em>transaction</em> start time, so a retry loop sharing one transaction re-evaluated <code>last_updated &lt; now() - timeout</code> against a constant and never made progress; fix is <code>clock_timestamp()</code>, with the testing-seam lesson on why unit + e2e both missed it. <em>(Oskar Dudycz · event-driven.io)</em></li>
<li><strong><a href="https://boringsql.com/posts/postgresql-toast/">TOAST: where PostgreSQL hides big values</a></strong> — reproducible walkthrough of the over-2KB out-of-line storage path: compression strategies, the per-column <code>STORAGE</code> knob, why a wide <code>text</code>/<code>jsonb</code> column silently changes your I/O profile, and how to see TOAST traffic. <em>(Radim Marek · boringsql.com)</em></li>
<li><strong><a href="https://www.pgedge.com/blog/why-postgres-lacks-transparent-data-encryption">Why Postgres lacks transparent data encryption</a></strong> — why TDE never landed in core (the buffer/WAL/temp-file surface area, key management, and the recurring pg_tde-style extension route requiring a patched server), and what at-rest encryption actually buys you versus filesystem/volume encryption. <em>(pgEdge)</em></li>
</ul>
<h2>Community pulse</h2>
<ul>
<li><strong><a href="https://news.ycombinator.com/item?id=48326802">SQLite is all you need for durable workflows</a></strong> — the week's biggest DB thread: a long argument over building durable-execution engines directly on an embedded DB instead of a dedicated workflow system, trading off single-node simplicity against scale. <em>(Hacker News · 720 pts, 387 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48313530">Building durable workflows on Postgres</a></strong> — the Postgres-flavoured half of the same debate (DBOS): can the database be your only durable-execution substrate, and where do queues/outboxes still beat it. <em>(Hacker News · 359 pts, 147 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48335022">CQL: Categorical Databases</a></strong> — category-theory-based data integration and schema mapping resurfaced and drew a genuinely technical thread on whether the formalism pays its way in practice. <em>(Hacker News · 111 pts, 39 comments)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48321617">SQLite does not accept agentic code</a></strong> — Simon Willison on SQLite's stance against AI-generated contributions, prompting a wider argument about provenance, testing rigour, and the project's famously high bar. <em>(Simon Willison · Hacker News)</em></li>
</ul>
<h2>Wider DBMS &amp; distributed data</h2>
<ul>
<li><strong><a href="https://clickhouse.com/blog/multi-stage-distributed-query-execution-clickhouse-cloud">Multi-stage distributed query execution in ClickHouse Cloud</a></strong> — how ClickHouse moved from a single distributed-aggregation step to a multi-stage exchange model, with the shuffle/repartition mechanics that let joins and aggregations scale across nodes. <em>(clickhouse.com)</em> <em>[vendor blog — substantive]</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48282761">SlateDB — an embedded database built on object storage</a></strong> — an LSM-style embedded store that puts its storage layer directly on S3-style object storage, trading local-disk latency for elastic, separated storage. <em>(slatedb.io · via Hacker News)</em></li>
<li><strong><a href="https://news.ycombinator.com/item?id=48348429">Show HN: Streambed — stream Postgres to Iceberg on S3, speaks the Postgres wire protocol</a></strong> — CDC from Postgres into Iceberg while exposing a Postgres-wire endpoint over the lakehouse; the thread digs into the wire-protocol emulation and where it diverges from real Postgres. <em>(github.com/viggy28/streambed · via Hacker News · 129 pts)</em></li>
</ul>
<h2>International (non-English sources)</h2>
<ul>
<li><strong><a href="https://habr.com/ru/companies/yandex_cloud_and_infra/articles/1040504/">Becoming <code>postgres</code> in someone else's cloud: a security crash-test of managed databases</a></strong> — a Yandex Cloud reliability lead documents two privilege-escalation vectors in managed PostgreSQL where the server runs code as <code>superuser</code> and bypasses the control-plane's restricted roles; both were found at two public cloud providers and fixed upstream and by the vendors before publication. <em>(Evgeny Efimkin · Yandex Cloud / habr.com)</em> [ru] <em>(orig: «Как стать postgres в чужом облаке: краш-тест безопасности управляемых БД»)</em></li>
<li><strong><a href="https://habr.com/ru/companies/tantor/articles/1039680/">Why Postgres with an external OLAP engine isn't really HTAP</a></strong> — argues that bolting an external columnar engine onto Postgres (separate storage model, ETL/CDC, parquet hand-off) breaks the single-transaction-visibility property real HTAP needs, and sketches doing OLTP + analytics over shared storage inside Postgres instead. <em>(Tantor Labs · habr.com)</em> [ru] <em>(orig: «Почему PostgreSQL с внешним OLAP — это не совсем HTAP?»)</em></li>
<li><strong><a href="https://habr.com/ru/companies/tantor/articles/1039172/">Polymorphic associations in PostgreSQL: helping the planner avoid performance cliffs</a></strong> — how the ORM-generated discriminated-FK pattern (<code>type, id</code> LEFT JOINed to every subtype) regresses, and three pgsql-hackers patches discussed in 2024–2026 that each target a different source of the regression in the optimizer. <em>(Andrei Lepikhov · Tantor / habr.com)</em> [ru] <em>(orig: «Полиморфные ссылки в PostgreSQL: помогаем СУБД избежать провалов производительности»)</em></li>
</ul>
<h2>Upcoming events</h2>
<ul>
<li><strong><a href="https://2026.pgday.ch/schedule/">Swiss PGDay 2026 — Rapperswil, CH, Jun 25–26</a></strong> — the Swiss PostgreSQL conference, two tracks (EN/DE). Internals picks:<ul>
<li><strong>Deep dive into the PostgreSQL Front/Backend protocol</strong> (Xavier Fischer, EDB) — the wire protocol every pooler, proxy, and distributed router must speak.</li>
<li><strong>Optimizer Hints in PostgreSQL</strong> (Michael Banck, credativ) — timely against PG19's new <code>pg_plan_advice</code>.</li>
<li><strong>Zooming in on OOM: Postgres &amp; Linux memory</strong> (Oleksii Kliukin &amp; Dimitris Sideris, Tiger Data) — backend/OOM-killer interaction and memory accounting.</li>
</ul>
</li>
</ul>
<hr />
<p><em>14 items · sources scanned: ~30 · community threads scanned: HN (postgres/database/sqlite/clickhouse queries, date-ranged) · international: ru (Habr) · filtered out as marketing/ads: ~10</em></p>]]></content:encoded>
    </item>
    <item>
      <title>DBMS Weekly — 2026-05-24 (week of 2026-05-18–2026-05-24)</title>
      <link>https://danolivo.github.io/dbms-digest/digests/2026-05-18.html</link>
      <guid isPermaLink="false">dbms-digest-2026-05-18</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 +0000</pubDate>
      <content:encoded><![CDATA[<h2>PostgreSQL</h2>
<ul>
<li><strong><a href="https://thebuild.com/blog/2026/05/18/postgresql-19-beta-the-four-features-youll-actually-feel/">The four PG19 features you'll actually feel in production</a></strong> — ahead of the (then-imminent) PG19 beta, Christophe Pettus skips the SQL/PGQ graph headline and flags the operational changes: 64-bit MultiXact members (kills the "vacuum-or-die" member-exhaustion failure mode), parallel autovacuum index workers (watch the <code>autovacuum_max_workers × autovacuum_max_parallel_workers × maintenance_work_mem</code> worst case), temporal <code>UPDATE/DELETE ... FOR PORTION OF</code>, and <code>jit = off</code> by default (OLAP shops should re-enable and benchmark before upgrading). <em>(thebuild.com)</em></li>
<li><strong><a href="https://www.theregister.com/databases/2026/05/20/postgresql-backup-tool-gets-some-backup-of-its-own-after-sole-maintainer-sounds-alarm/">pgBackRest gets a multi-vendor lifeline after its maintainer steps back</a></strong> — the most widely-used Postgres backup tool was archived in late April when its sole maintainer of 13 years (David Steele) lost funding after the Crunchy Data acquisition; a coalition (AWS, Percona, Supabase, pgEdge, Tiger Data, Eon) stepped in to fund continued development. <em>(The Register)</em></li>
<li><strong><a href="https://percona.community/blog/2026/05/19/backrests-back-alright/">Backrest's back, alright! — the anatomy of a sustainability gap</a></strong> — Jan Wieremjewicz reframes the panic: an archived repo isn't EOL, it's the "Nebraska guy problem" — critical infra carried by one person — and argues forks fragment trust where coordinated funding restores continuity. <em>(Jan Wieremjewicz · percona.community)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_infer-100-released-transformer-model-knowledge-as-sql-relations-3307/">pg_infer 1.0.0 — transformer model internals as SQL relations</a></strong> — not text-to-SQL: a PG18+ index AM that brings small-transformer inference into the query plan as a planner-costable operator, exposing gate activations / learned associations / embeddings as scannable relations. <em>(Greg Burd · postgresql.org)</em><ul>
<li><code>&lt;~&gt;</code> model-similarity operator is index-backed and composes with WHERE/JOIN/aggregation; <code>describe()</code>, <code>walk()</code>, <code>implies()</code> probe what a model "knows"</li>
<li>"model" indexes WAL-log the entire vindex inside PG pages, so backup/replication/PITR cover the model like any table; targets CPU inference (OpenBLAS, BitNet b1.58 ternary weights) and idle replica CPUs via a remote backend</li>
<li>PostgreSQL 18+; built with pgrx; credits the upstream LARQL project</li>
</ul>
</li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_tre-111-released-an-approximate-regex-index-am-for-postgresql-18-3305/">pg_tre 1.1.1 — approximate-regex index access method</a></strong> — a real <code>IndexAmRoutine</code> (USING tre) doing Levenshtein-distance regex matching ("within k edits of this pattern"), with WAL coverage, VACUUM awareness, and REINDEX CONCURRENTLY; three-tier filter funnel (BRIN-style range bloom → trigram postings → per-tuple bloom) over Laurikari's TRE library. Fills a gap pg_trgm/FTS/pgvector don't cover. PostgreSQL 18+. <em>(Greg Burd · postgresql.org)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_mentat-130-released-datomic-compatible-datalog-inside-postgresql-3306/">pg_mentat 1.3.0 — Datomic-compatible Datalog inside Postgres</a></strong> — immutable datoms, a Datalog compiler that lowers to ordinary SQL, the pull API, time-travel (as-of/since/history), and ACID via PG transactions; built with pgrx in Rust for PG13–18, with soft integrations into pg_trgm/fuzzystrmatch/pgvector/PostGIS/etc. <em>(Greg Burd · postgresql.org)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_sorted_heap-0140-released-3300/">pg_sorted_heap 0.14.0</a></strong> — physically-sorted heap storage with zone-map pruning and a planner-integrated vector-search path. <em>(Sergey Kuznetsov · postgresql.org)</em><ul>
<li><code>sorted_hnsw</code> made planner-visible via the Index AM path for covered KNN, including parent Merge Append over leaf HNSW indexes</li>
<li>composite zone-map metadata (first-key block ranges + bounded second-key summary); <code>sorted_heap_bulk_load_ordered(...)</code> trusted ordered ingestion</li>
<li>verified on PostgreSQL 16, 17, 18; now on PGXN</li>
</ul>
</li>
<li><strong><a href="https://www.postgresql.org/about/news/plpgsql_wrap-v10-released-3299/">plpgsql_wrap v1.0 — Oracle-style PL/pgSQL obfuscation</a></strong> — stored procedures written <code>LANGUAGE plpgsql_wrap</code> are AES-256-GCM-encrypted into <code>pg_proc.prosrc</code>; source is unreadable (including in <code>pg_dump</code>, whose output stays restorable) without the key, otherwise behaves identically to plpgsql. PostgreSQL 12+. <em>(HexaCluster · postgresql.org)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/pg_statviz-10-released-with-ai-powered-analysis-3301/">pg_statviz 1.0 — with opt-in AI analysis</a></strong> — minimalist in-database stats time-series extension, now with an opt-in <code>--ai</code> analysis flag. <em>(pg_statviz project · postgresql.org)</em><ul>
<li><code>--ai</code> sends each chart's data/PNG to a vision LLM (Claude/Gemini/local Ollama) for a HEALTHY/WARNING/CRITICAL verdict plus remediation</li>
<li>notable design discipline: a deterministic rules engine runs first and a "severity floor" prevents the LLM downgrading a real finding; prompts wrap user data in <code>&lt;user_data&gt;</code> envelopes for prompt-injection containment</li>
<li>AI is fully optional; with no <code>--ai</code> flag there are zero extra dependencies and no external calls</li>
</ul>
</li>
<li><strong><a href="https://www.postgresql.org/about/news/barman-3180-released-3303/">Barman 3.18.0</a></strong> — new release of EDB's backup-and-recovery manager for PostgreSQL. <em>(EDB · postgresql.org)</em></li>
<li><strong><a href="https://www.postgresql.org/about/news/release-check_pgactivity-210-3302/">check_pgactivity 2.10</a></strong> — new release of the Nagios/monitoring plugin for PostgreSQL. <em>(check_pgactivity project · postgresql.org)</em></li>
</ul>
<h2>Wider DBMS &amp; distributed data</h2>
<ul>
<li><strong><a href="https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution">Postgres is all you need for durable workflows</a></strong> — Peter Kraft argues external workflow orchestrators (Temporal, Airflow, Step Functions) are overcomplicated: if durable execution is really about checkpointing to a database, the database can <em>be</em> the orchestrator — workers cooperatively dequeue from a Postgres table via locking clauses, checkpoint each step, and recover each other's state, inheriting Postgres's replication/observability/security instead of adding a new point of failure. <em>(Peter Kraft · dbos.dev)</em></li>
</ul>
<h2>Migration experience</h2>
<ul>
<li><strong><a href="https://runharbor.com/blog/2026-05-18-building-automatic-contextual-clinical-trial-audit-logging-in-postgres-without-triggers">21 CFR Part 11 audit logging in Postgres without triggers</a></strong> — Nathan Leung walks through why Harbor rejected pgAudit (no app context) and PL/pgSQL triggers (<code>SET LOCAL</code> plumbing, per-study-DB duplication, PgBouncer transaction-pooling wariness) and instead wrapped their Drizzle ORM in a JS <code>Proxy</code> that forces <code>.withAuditLogCtx(...)</code> before any mutation, writing the data change and a signed before/after audit row in one transaction (<code>SELECT ... FOR UPDATE</code> for a consistent snapshot). Honest trade-offs section: extra round trips, weaker guarantee than a DB-level trigger, and a note on eventually moving signing into pgcrypto. <em>(Nathan Leung · runharbor.com)</em></li>
</ul>
<h2>Call for papers</h2>
<ul>
<li><strong><a href="https://www.postgresql.org/about/news/pgday-israel-2026-call-for-papers-is-now-open-3291/">PGDay Israel 2026 — Tel Aviv, Oct 25</a></strong> — CfP opened this week (May 21); submissions close <strong>Jul 1, 2026</strong>. <em>(community)</em></li>
</ul>
<h2>Upcoming events</h2>
<ul>
<li><strong><a href="https://2026.debs.org/">DEBS 2026 — Lisbon, PT, Jun 23–26</a></strong> — the ACM conference on Distributed and Event-Based Systems; close to Postgres logical-decoding/CDC and real-time analytics. Full program still going up; one accepted paper already of note:<ul>
<li><strong>Lean Gossip: Big Gains from Small Talk</strong> — a leaner gossip / membership-dissemination protocol; applicable to cluster membership and failure detection in distributed Postgres deployments.</li>
</ul>
</li>
</ul>
<hr />
<p><em>12 items · sources scanned: ~30 · community threads scanned: HN (Algolia, postgres + database queries — a quiet week, no in-window thread cleared the engagement bar) · international: Habr/Qiita/Dalibo feeds checked but none reach back to the window (plain feeds only carry recent items) · filtered out as marketing/ads: ~7</em></p>]]></content:encoded>
    </item>
  </channel>
</rss>
