← All digests

DBMS Weekly — 2026-09-14 (week of Sep 14–20)

The week PostgreSQL 19 lost its last flagship feature, and the week a review technique stopped being a novelty. Online data checksum transitions were reverted in full from REL_19_STABLE on 16 September — 30 commits backed out — after an LLM review run by Noah Misch surfaced that the feature works through pg_class and therefore never touches orphaned relation files left behind by a crash; Robert Haas confirmed Postgres has no orphan-file cleanup at all, so any cluster that had ever crashed mid-CREATE would have started failing base-backup page verification with no tool to fix it. The revert itself then broke the buildfarm. The same pattern ran through the rest of the week: Richard Guo filed six distinct planner crashes in seven days from fuzzing join-alias expansion, most reproducing back to v14; Jeff Davis filed three independent wrong-results bugs (Gather rescan losing its tuple bound, MERGE … WHEN NOT MATCHED BY SOURCE racing a DELETE, TID range scans after scanning backwards); and Haas LLM-probed eager aggregation into three real bugs plus a semantics question the thread had to settle by hand. Outside the tree, PlanetScale shipped TIN — a full-text index that stores raw ctids so segment merges move bitmaps instead of renumbering docids — and got a 95-comment argument about what building proprietary software on Postgres owes upstream; MariaDB 13.0 went stable with DuckDB as a pluggable storage engine (gamma quality, explicitly not production); and a volunteer took Simplified Chinese message catalogs from 66% to 100% across PG 14–19 in seven days, merged upstream on 18 September, finding two genuine format-string bugs in the old translations on the way.

PostgreSQL

  • Introducing TIN: full-text search for Postgres — the week's most substantial index-design write-up: postings are raw ctids so merges transfer bitmaps instead of renumbering segment-local docids, two-level page/offset bitmaps are sized to AVX2/AVX-512 registers, and MVCC correctness comes from visibility-map intersection plus a per-segment liveness bitmap cleared by VACUUM; benchmarks against ParadeDB, pg_textsearch and GIN disclose instance type, container limits, corpus and harness. (Eric Ridge, Patrick Reynolds · planetscale.com) [vendor blog — substantive]
  • The architecture of Neki — component-by-component teardown of sharded Postgres on an unmodified server: one "authoritative shard" as the source of truth for custom-type OIDs across shards, three distinct sidecar pooling lifetimes (autocommit / open transaction / session advisory lock), pg_rewind-based failover, and Reshard/MoveTables/OnlineDDL all riding a single logical-decoding CDC path. (Harshit Gangal · planetscale.com) [vendor blog — substantive]
  • 19th Nervous Breakdown — the sharpest account of why PG19 fell over: eight major features landing in the five weeks before freeze, and three committers ending up withdrawing their own work. (Christophe Pettus · thebuild.com)
  • Looking Forward to Postgres 19: Epilogue — the author of the twelve-part PG19 preview walks back through his own series revert by revert, naming commits and committers (SQL/PGQ pulled by Peter Eisentraut 2026-09-07, MERGE/SPLIT PARTITION by Alexander Korotkov 2026-08-27, non-text output formats for pg_dumpall by Andrew Dunstan 2026-06-15, commit 7ca548f23a), anchored on Haas's "scary patch contest" thread. (Shaun Thomas · pgedge.com)
  • PostgreSQL 19: Sept 08 – Sept 16, 2026 — ground truth rather than commentary: 71 commits on REL_19_STABLE, 46 on master, 74 commits withdrawn across 6 reverts, window closing at d8408e8d682. The cheapest way to fact-check every "PG19 lost feature X" claim this week. (Joshua Drake · commandprompt.com)
  • Where PostgreSQL stores row locks — pageinspect walkthrough showing that SELECT … FOR UPDATE and FK checks write the locker's xid into t_xmax with t_infomask flags, so every "row lock" is physically a page write; captured on a real 18.6 container with runnable SQL. (Radim Marek · boringsql.com)
  • Your agent is reading someone else's tenant — reproduces, with psql transcripts, a second client inheriting app.tenant through a PgBouncer transaction-mode backend and reading another tenant's RLS-protected rows; ties it to the 2026-07-28 MCP spec change that removed the session from the protocol. (Mikhail Shytsko · seedfa.st)
  • Plan Advice in PostgreSQL 19 — hands-on with pg_plan_advice and pg_stash_advice on a real 19beta3 build: plan capture, selective enforcement, automatic application by query id, and why the two extensions go in different preload lists (pg_plan_advice in session_preload_libraries, pg_stash_advice in shared_preload_libraries so advice survives a restart). (Dimitri Fontaine · tapoueh.org)
  • Postgres development activity — three decades of charts on commit counts and insertions/deletions, and 28 years of pgsql-hackers traffic; list volume has grown far faster than commit throughput, which is the quantitative version of this week's release-process argument. (Tomas Vondra · vondra.me) [by committer]
  • PostgreSQL CommitFest metrics: PGConf.dev 2026, part one — write-up of the Angelakos/Scherbaum study of what actually happens to a patch after submission, pulled from the CommitFest app; deliberately observation over diagnosis, closing with modest suggestions about making formal closure easier rather than a list of fixes. (Jimmy Angelakos · vyruss.org)
  • Knowing when your composite index earns its write cost — prices both sides with numbers: pgstatindex leaf density 90.1% for (ts) vs 57.6% for (tag_id, ts DESC) built by inserts, 699 MB vs 834 MB WAL over 5M inserts, pgbench 12,623 → 11,639 inserts/sec (−7.8%) — and is honest that its first run understated the penalty at 4.7% because the index still fit in shared_buffers. (NanoHertz Communications · tigerdata.com) [vendor blog — substantive]
  • Sizing an OLTP TPC-E-like workload, part 1 — systematic DBT-5 scale-factor sweep on EC2 from 5,000 to 97,000 customers with 1→2× logical processors in user count and a 1-hour steady state per run; best result at 32,000 customers / 24 users, harness and results published. (Mark Wong · markwkm.blogspot.com)
  • Troubleshooting row lock contention in Aurora PostgreSQL — how row lock contention collapses throughput while CPU and I/O both look healthy, traced with the built-in views, pgrowlocks and lock-wait logging; part 2 covers query termination, timeout parameters, SKIP LOCKED and row splitting. (Sameer Kumar, Sabesan Manivasakan · aws.amazon.com)
  • All your GUCs in a row: max_notify_queue_pages — explains why the GUC exists at all rather than restating the docs: the cluster-wide LISTEN/NOTIFY SLRU queue under pg_notify/ stopped being self-limiting after PG16. (Christophe Pettus · thebuild.com)
  • pgColumnar 1.0-alpha4 — fourth alpha of the columnar table access method, themed on layout and skipping. (Joshua Drake · commandprompt.com)
    • tables can be laid out on a Hilbert curve, which keeps neighbouring keys closer than Z-order
    • star-schema joins now skip fact-table groups
    • previous release 1.0-alpha3 on 2026-09-02

PostgreSQL mailing lists

  • [hackers] Revert online data checksum transitions — one of PG19's flagship features backed out of REL_19_STABLE in full on 16 Sep (30 commits, kept in master for a v20 retry), and the revert immediately broke the buildfarm because pg_control_checkpoint() was left declaring 20 output columns against a 19-element values[] array. (Daniel Gustafsson · pgsql-hackers) [committed]
  • [hackers] Trying to break online checksums with LLMs — the reason for that revert: online checksum enabling works through pg_class and so never touches orphaned relation files left by a crash, meaning any cluster that crashed mid-CREATE would start failing base-backup page verification with no cleanup tool — Haas confirmed Postgres has no orphan-file cleanup at all, and the RMT agreed to revert on 15 Sep. (Daniel Gustafsson / Robert Haas, on Noah Misch's review · pgsql-hackers) [committed]
  • [hackers] Issues with eager aggregation — LLM-probing Richard Guo's eager aggregation turned up three real bugs, including a wrong-grouping bug where get_expression_sortgroupref() reuses a grouping key's SortGroupClause for an EC-equal Var of a different type, so 5 and 65541 land in the same group; the semantics question (eager aggregation can make a working query raise division-by-zero) was settled as no worse than existing qual pushdown, to be handled by a documentation note rather than a code change. (Robert Haas · pgsql-hackers) [patch posted]
  • [hackers] Unprocessed SubLink from whole-row join alias expansion — one of six distinct planner crashes Guo filed in seven days from fuzzing join-alias expansion (no relation entry for relid 3, too late to create a new PlaceHolderInfo, unsupported join alias expression, SubPlan found with no parent plan, lateral refs hidden in join Vars, and this one), most reproducing back to v14/v16. (Richard Guo · pgsql-hackers) [patch posted]
  • [hackers] remove_useless_joins vs. bug #19560 — long-running thread resolved: the PlaceHolderVar preprocessing fix runs in preprocess_expression right before SS_process_sublinks, so each upper-level PHV is preprocessed exactly once and always after join-alias expansion; back-patched to v16, plus a second fix for a varnosyn assertion from 2ebf25e7d. (Richard Guo / Tom Lane · pgsql-hackers) [committed]
  • [hackers] Routed ON CONFLICT inserts broken by partition-local deferrable unique constraints — PG19 open item cleared just ahead of the beta4 freeze with a new IsIndexCompatibleAsArbiter() comparison; while reviewing, Álvaro Herrera documented a separate long-standing bug — with a non-deterministic collation, ON CONFLICT (x) works but the ON CONFLICT ON CONSTRAINT form throws an error it shouldn't, broken in 18 and earlier and still broken after this fix. (Álvaro Herrera / Zsolt Parragi / Mihail Nikalayeu · pgsql-hackers) [committed]
  • [hackers] Reject WAIT FOR earlier in transaction-snapshot mode — the docs claimed WAIT FOR is rejected above READ COMMITTED, but it was accepted in REPEATABLE READ and SERIALIZABLE as long as no snapshot had been taken yet; fix pushed 18 Sep and the PG19 open item closed. (Sami Imseih / Alexander Korotkov · pgsql-hackers) [committed]
  • [hackers] Regression tests failures due to concurrent grants — intermittent ERROR: tuple concurrently updated in the publication/subscription tests traced to GRANT taking no object lock at all, so two concurrent GRANTs on the same database race; the discussion turns on whether a self-exclusive lock would be needed before every CatalogTupleUpdate() of a GRANT-affectable row. Reported once before and declined, now reopened. (Andres Freund · pgsql-hackers) [open]
  • [bugs] Gather rescan keeps the first scan's tuple bound in workers — silent wrong results on every supported branch: a Gather or Gather Merge under a parameterised Limit, rescanned as the inner side of a nested loop or LATERAL, keeps the first scan's tuple bound in its workers, so later scans return too few rows — or, over a Sort, the right number of the wrong rows. (Jeff Davis · pgsql-bugs) [patch posted]
  • [bugs] Wrong results: MERGE WHEN NOT MATCHED BY SOURCE — racing a concurrent DELETE under READ COMMITTED inserts a null-source row; affects 17+. Dean Rasheed has a fix ready but is holding the push until the 19 beta wraps. (Jeff Davis / Dean Rasheed · pgsql-bugs) [patch posted]
  • [bugs] TID range scans can return wrong results after scanning backwards — rs_numblocks is spent as a budget in both directions, so a backward scan eats the forward scan's allowance; back to v14, and the third independent AI-found wrong-results bug from the same person in one week; Ewan Young posted a direction-change fix on 17 Sep. (Jeff Davis · pgsql-bugs) [patch posted]
  • [hackers] Opportunistic pruning is lost under direct I/O — the benchmark that had to be thrown away and came back stronger: Melanie Plageman called the original setup contrived (with 1024 buffers, MaxProportionalPins left ~9 pins per backend, so the read stream never looked ahead), so shihao zhong re-ran at pgbench scale 1000 and got missed-prune rates of 66.7%/54.1% with direct I/O against 4.6%/3.2% without — "I would not call that a corner case." (shihao zhong / Melanie Plageman · pgsql-hackers) [open]

CommitFest (open: PG20-3, #62)

  • Balance (Sep 14–20): ≥26 new · ≥7 closed (7 committed / 0 withdrawn / 0 rejected) → net ≥ +19. (The per-CF activity log caps at 100 rows and its oldest entry is 2026-09-14 02:15, so the first 2h15m of the window is clipped — both counts are lower bounds.) Queue at scan time: 74 needs review · 7 waiting on author · 10 ready for committer.
  • New this week: Add get_actual_variable_range index page read limit (Peter Geoghegan) — splits an INDEX_PAGES_LIMIT out of the long-running VISITED_PAGES_LIMIT thread, after Mark Callaghan's insert benchmark showed the existing 100-heap-page limit is ineffective once dead index tuples pile up on queue-like tables; deliberately leaves standby behaviour unchanged because LP_DEAD bits can't be set during hot standby. Also created: Report pruning statistics in pg_stat_all_tables, Combine qual-based and NOT NULL proofs when reducing outer joins, Improve hash aggregate spilling by writing only the needed columns, Discard aborted updaters when expanding a multixact, pg_rewind does not rewind diverging timelines, postgres_fdw: fix cost estimation for semi join pushdown, Use bounded GIN pending-list cleanup in parallel autovacuum, pg_walinspect: locate and list WAL by time and LSN.
  • Closed (all committed): REPACK (CONCURRENTLY) decoding worker is canceled by lock_timeout (→ Herrera), Reject WAIT FOR earlier in transaction-snapshot mode and Improve WAIT FOR read-your-writes consistency doc (→ Korotkov), pgoutput: schema cache cleanup after streamed 2PC (→ Sawada), SHMEM_ATTACH_UNKNOWN_SIZE reaches InitShmemIndexEntry() (→ Linnakangas), plus two doc fixes. The last two were created and committed inside the same week.

Community pulse

  • Is PG19's late revert spree the project breaking, or working as intended? — after SQL/PGQ, MERGE/SPLIT PARTITION, GROUP BY ALL and the CREATE SCHEMA work were all yanked post-beta, the thread split three ways — "this is 'it's done when it's done' done right", "the cycle should be feature-driven, not calendar-driven", and one reading it as a reaction to code that's easy to write and hard to test. Nobody defended shipping the reverted patches. (r/PostgreSQL · 92 pts, 17 comments)
  • Can a 4B model pick better query plans than the planner? — the correctness objection closed fast: any hint pg_hint_plan accepts still yields a valid plan for the query, and its debug log tells you whether the hint was used at all. What the thread then argued about was staleness — the hints are generated offline (~95 hours on a 2×H100 node, $1,200 all in) and go stale the moment stats or workload shift — with Steinar Gunderson pushing back on the premise that Postgres assumes uniform distributions when it keeps histograms and MCVs. It landed as a plausible offline advisory/CI tool, not a runtime planner. (Hacker News · 696 pts, 143 comments)
  • "Full-text search for Postgres" that only runs on the vendor's cloud — within half an hour the top comment established that the open planetscale/lead build is a syntax-compatibility stub with different performance characteristics, and the thread turned into a real open-source ethics fight, with TIN's own author arguing a moral obligation to the upstream you build on. Unresolved: "open source is a license, not a moral framework" versus "we live in a society." (Hacker News · 225 pts, 95 comments)
  • CTEs vs subqueries vs temp tables, and no consensus at all — the week's highest-comment database thread: "CTEs, because I don't have temp-table privs and they're easier to optimise and troubleshoot" (+109) against a large temp-table camp arguing materialisation wins when you touch the data twice and you can validate stage by stage. Platform-specific war stories carried the most weight. (r/SQL · 93 pts, 107 comments) — the framing is a karma-farm template from a two-week-old account; the commenters are real practitioners.
  • When does a database become too complicated to operate? — the thread rejected the premise ("you don't add replication for funsies") but produced the week's best war story: someone deleted indexes that made the system 5% faster because they were the primary source of outages. Agreed failure mode was accreted bolt-on design plus missing documentation, not any one feature. (r/Database · 44 pts, 22 comments)
  • Is self-managing Postgres on a VPS actually worth it? — a hard yes with receipts: a 500 GB production DB behind a multi-million-ARR SaaS untouched for six years, plus a 4 TB instance doing ~1 TB of upserts/day. The counterweight was procedural rather than technical — you need tested backups, patching and DR policies, and you need them on a managed provider too. (r/PostgreSQL · 37 pts, 23 comments)

Wider DBMS & distributed data

  • Keeping up with AI: Valkey security in 2026 — the project published more security advisories in the first eight months of 2026 than in its first twenty-one months combined, because AI made bug-finding cheap; a project-side account of how triage and disclosure had to adapt. Every OSS database is about to hit this curve. (Valkey project · valkey.io)
  • Trying DuckDB for Magento analytics: one million orders — the same two real Magento report queries across three storage configurations: 18.464 s all-InnoDB, 8.267 s with orders on DuckDB, 0.292 s with orders and items on DuckDB. A concrete data point on row-store and column-store coexisting inside one engine. (Roman Nozdrin · mariadb.org)

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

  • MariaDB 13.0 is now stable — (Frédéric Descamps · mariadb.org)
    • headline: DuckDB usable as a pluggable storage engine — columnar, vectorised analytical execution alongside InnoDB, joinable in one statement — shipped as MariaDB-duckdb-engine 13.0.2 but gamma quality, not production
    • also: QB_NAME() optimizer hint, richer optimizer/metadata visibility, InnoDB log archiving (innodb_log_archive), Performance Schema digest changes, binlog/replication work
    • did not make it: optimizer trace showing the statistics actually used (MDEV-38701), atomic CREATE OR REPLACE TABLE (MDEV-25292)
    • 604 commits and 335 MDEVs between RC and stable; rolling release, explicitly not LTS
  • When did this transaction happen? PostgreSQL snapshots, LSNs, Oracle SCNs, and more — long-form cross-engine comparison of how each system stamps and orders commits; the kind of side-by-side that makes Postgres's own design choices legible by contrast. (Franck Pachot · dev.to/franckpachot)
  • Learn PostgreSQL extensibility through a gloriously bad idea: MM/DD/YYYY native datatype — builds a deliberately terrible native datatype end to end as a teaching device for the type-system machinery an extension actually has to touch. (Franck Pachot · dev.to/franckpachot)

Migration experience

  • Inspecting a catalog with pg_migrate — why information_schema is not a usable universal source for reconstructing a data model, and how PostgreSQL Migrator 1.0's offline catalog snapshots the Oracle catalog so migration analysis stops requiring a live source connection. Written by one of the tool's three authors, who has been on the project since 2024. (Florent Jardin · fljd.in)

Research & cutting edge

  • How can we shrink the family of test databases? Query containment with nulls and comparisons — containment for conjunctive queries under SQL's three-valued NULL semantics and order comparisons is Π₂ᵖ-complete and normally needs an exponentially large family of test databases; they shrink it to be exponential only in a small variable set (NP when that set is constant-size) and show the combined test is FPT in three local parameters — a route to certifying rewrite equivalence with real NULLs using ordinary query evaluation. (Sternbach, Cohen) [paper]
  • FastPair: GPU-optimized string decoding — reorganises dictionary-code lookups so decoded substrings are written contiguously, beating NVIDIA's on-die fixed-function decompression engine by 2.4–4.2× on ten real string columns (up to 1.6 TB/s on a B300); the win comes from memory-access shape, not a better codec. (Isaacs, Gargiulo, Boncz, Kruszewski, Gates, Venturini, Manning, Prammer) [paper]
  • Chronos: efficient bolt-on branching across data stores for stateful agentic applications — interval-based versioning implemented purely as query rewrite plus a branch manager sitting beside each engine, so branching and merging work unmodified on PostgreSQL, SQLite, DuckDB and Qdrant; up to 16.7× faster than prior approaches on MCTS-style exploration, and it prevents partially visible cross-store merges — at some per-query rewrite cost. (Zhou, Mohoney, Madden, Stonebraker, Cao) [paper]
  • Distribution-aware distributed database testing — argues existing DBMS fuzzers, built for centralized engines, mostly generate queries that fail to execute or never reach distribution-specific plans; varying logical schema × data-distribution strategy with historical feedback found 31 previously unknown bugs in four production distributed DBMSs, 28 of them in distributed query processing and optimization. (Zhou, Liu, Wei, Zhang) [paper]
  • SKYE: write-optimized key-value store with fine-grained control over persistent-memory access — deliberately gives up direct application access to PM: requests go to dedicated threads that control per-NVDIMM placement and limit remote NUMA traffic, reaching 2.5–5× over state-of-the-art PM stores on YCSB with a single NVDIMM, and ~86% of PM write bandwidth once spread over four NVDIMMs across four NUMA nodes. The lesson generalises past PM — unrestricted thread-level device access can cost more than the indirection saves. (Ponnapalli, Lee, Kadekodi, Chidambaram · UT Austin) [paper]
  • ZigZag Trie: a new index for contextual queries — a linear-size full-text index (O(n log n) construction) that reorders the text so all left/right contexts growing symmetrically around a pattern land in one subtree, giving optimal-time answers for three of its four context-query classes and near-optimal for the fourth; validated on billion-letter datasets at comparable index size. (Li, Gibney, Thankachan, Shah, Loukides, Pissis) [paper]
  • Fast label-filtering ANN search via progressive label-set stratification — a label-stratified similarity graph whose edges only connect vectors in the same label-similarity tier, with MinHash keeping label handling scalable; measured as hitting ideal optimality for equality filters, and 1.06–92.9× faster on containment (1.08–84.1× on overlap) at equal accuracy with 0.35× index size. Directly relevant to the filtered-vector-search problem in pgvector. (Wang, Zhang, Shen, Hu) [paper]
  • Scalable triangle counting: the threshold algorithm — read a random-order edge stream until Q triangles appear, then output Q·(m/S)³; no a priori estimate and no prescribed memory budget, because the stopping rule self-selects. On a 1.8×10⁹-edge graph it reads 0.46% of the stream for 3.8% error — and the paper is honest that at a fixed stored-edge budget, variance-reduced reservoir samplers are often more accurate — just only after a full pass. (Etgar, Gilbert, Liu, McGregor) [paper]

International (non-English sources)

  • Simplified Chinese Postgres messages went from 66% to 100% in seven days, after seven years untouched (EN mirror) — zh_CN sat at 66% and zh_TW at 70%, below the 80% threshold for shipping, and both were on the July pgsql-translators list of languages at risk of being dropped from PG19; the author volunteered on 11 Sep and by 17 Sep had submitted all PG 14–19 catalogs (162 files, 67,487 messages, zero fuzzy, clean msgfmt --check --check-format), merged by Peter Eisentraut on 18 Sep. The interesting part is the two real bugs found in the old translations: pg_ctl's invalid binary "%s": %m silently dropped the %m, and an ecpg msgid with one %s had a translation using %1$s/%2$s, reading an argument that was never passed. (Ruohang Feng · blog.vonng.com) [zh] (orig: PostgreSQL 中文版来了)
  • 5 TB dropped: single-node Docker PolarDB-for-PostgreSQL in production, no backups — several terabytes gone including the data dictionary, and contacts of the author's at Alibaba Cloud told him there is no data-recovery service for the PolarDB-for-PG kernel; recovery was handed to the author of PDU and was past 70% at time of writing. The back half is a consulting pitch; the failure anatomy in the front half is real. (Ruohang Feng · blog.vonng.com) [zh] (orig: 删库 5 TB)
  • A TiDB Region is not a shelf slot — it's a book-number range that splits, moves and merges — corrects the most common beginner mental model: a Region has no dedicated file, no dedicated process and no fixed physical home; it is a key interval plus the Raft multi-replica state responsible for it, living at the TiKV KV layer and deliberately not aligned with SQL tables. (TiDBer_wangwenjing · TiDB Community) [zh] (orig: TiDB 的 Region:不是书架格子,而是一段会"分裂、搬家、合并"的图书编号区间)
  • Dewu's TiDB upgrade: five years self-hosted, 5.3.3 → 7.5.x, and two optimiser regressions — cluster survey, pre-upgrade validation, traffic migration during the upgrade and teardown after — and, unusually for a vendor-channel post, it names two things that got worse on 7.5.x: queries tending toward full table scans, and inaccurate execution plans for aggregate queries. (Dewu DBA team, posted by Billmay表妹 · TiDB Community) [zh] (orig: 【最佳升级实践指南】得物TiDB升级实践)
  • Anatomy of FASTTRUNCATE: what 1C actually does with temporary tables in Postgres — FASTTRUNCATE, a 1C vendor-patch function rather than anything in core, accounted for 12.9% of CPU time over 24 hours on a 700 GB production ERP base; walks through the platform's temp-table handling, why УНИЧТОЖИТЬ in a query destroys nothing, and what changed in 8.3.25. (alex7six · Habr) [ru] (republished 2026-09-15; the author notes the text dates from 2024) (orig: Анатомия FASTTRUNCATE: как 1С работает с временными таблицами в PostgreSQL)
  • Four in one transaction: lock ordering, PgBouncer under Prisma, and a replica showing an empty inventory — concurrency write-up from a CS2 case-opening site: what happens when several people move the same money at once, the lock ordering that keeps it deadlock-free, PgBouncer behaviour under Prisma, and a replica-read rule the author argues cannot be expressed in the type system. (i_alakey · Habr) [ru] (orig: Четверо в одной транзакции: кейс-батлы, PgBouncer под Prisma и реплика, которая показывает пустой инвентарь)
  • Apache Iceberg: the catalog is where power over your data actually sits — argues the lakehouse "your data is vendor-neutral" story breaks at a layer nobody looks at: the catalog holds the pointer to the current table version plus access rights and temporary storage keys, so whoever owns it decides which engines can see your data. (Maxpiter · Habr) [ru] (orig: Apache Iceberg: Индиана Джонс и Каталог судьбы в Lakehouse)
  • Calling an external API from Aurora PostgreSQL: aws_lambda.invoke is the only door, and batching gives 72× — verifies empirically that Aurora PostgreSQL 17.9 ships no http/pgsql-http, pg_net, plpython3u or plperlu (the control file is absent, i.e. the binary isn't there rather than being blocked), then measures batching on 1,000 rows: 482.6 s at N=1 down to 6.7 s at N=100, with accuracy flat and round-trip only 476 ms → 670 ms. (asahide · Qiita) [ja] (orig: Aurora PostgreSQL から Jev を呼んでみた)
  • Dalibo training manuals, version 26.09 — quarterly refresh of the open-access PostgreSQL manuals (PDF, ePub, HTML, free): administration, backup and replication, HA, performance, indexing, advanced SQL. New this quarter: CNPG1 on running Postgres in Kubernetes with CloudNativePG, and DEV1, an SQL primer. (Dalibo · blog.dalibo.com) [fr] (orig: Manuels Dalibo : sortie de la version 26.09)
  • From relational databases to hybrid lakehouse systems — a long-form German feature on how vector search, real-time processing and dynamic scaling are reshaping architectures around relational engines. (Dr. Andreas Weininger, Sascha Slomka · heise online) [de] [unverified] (heise+ paywalled — only the standfirst and table of contents were readable, so the argument is not summarised here) (orig: Der Weg von relationalen Datenbanken zu hybriden Lakehouse-Systemen mit KI-Hilfe)

Upcoming events

  • PGConf.EU 2026 — Valencia, Spain, 20–23 October — the biggest European Postgres event, with a dedicated Postgres Internals track. Internals picks:
    • Batched and Vectorized Execution in the PostgreSQL Executor (Amit Langote) — the long-running attempt to give the executor a batch interface without forking it; the design constraints here decide what a vectorised Postgres can look like.
    • Signals, Latches, and Interrupts (Heikki Linnakangas) — the plumbing every backend depends on and almost nobody reads; directly relevant if you write anything that has to be interruptible.
    • Designing a new SQL language feature: Key joins (Andreas Karlsson, Joel Jacobson) — a walk through what it actually takes to get new syntax through the parser, the planner and the standards argument.

New sources added this week

  • commandprompt.com/blog — the best find of the run: a weekly commit-level ledger of REL_19_STABLE and master (counts, revert counts, the closing commit hash), plus real release notes for pgColumnar. The cheapest way to fact-check any "PG19 lost feature X" claim. (Joshua Drake)
  • markwkm.blogspot.com — TPC-E / DBT-5 benchmark work with published harnesses and result repositories; appears on Planet but was never pinned here. (Mark Wong)
  • snowflake.com engineering — Open Source — where the Crunchy Data Postgres writing has landed post-acquisition; filter the non-Postgres categories hard.
  • clickhouse.com/blog — real Postgres-adjacent engineering from Gülçin Yıldırım Jelínek and Sai Srirampur (physical-WAL-to-ClickHouse replication, with benchmarks); heavy product mix, worth a filtered watch.
  • babel.postgresql.org — not a news source, but the NLS translation-status dashboard is the primary artefact behind this week's biggest Chinese-language story and a useful standing reference.

63 items · yield — mailing lists: 869 messages in window (730 hackers / 106 bugs / 0 performance / 33 general) → 22 shortlisted → 12 published · blogs: 55 posts in window → 30 shortlisted → 21 published · community: ~370 threads viewed → 12 shortlisted → 6 published · research: 22 cs.DB preprints in window → 10 shortlisted → 8 published · international: ru 17→6→3, zh 21→7→4, ja 14→3→1, fr 1→1→1, de 2→1→1.