DBMS Weekly — 2026-08-17 (week of 2026-08-17–2026-08-23)
A committers' week rather than an announcements week. Peter Geoghegan spent it fixing index
correctness — three separate GIN VACUUM bugs plus a GiST kill-item inconsistency and a snapshot-
import xmin race — while Richard Guo landed a four-commit series that reduces outer joins to anti
joins, and Daniel Gustafsson pushed online data checksums further into the control file. Melanie
Plageman filed checkpointer write combining into the open CommitFest after eleven months and
sixteen patch versions. On -hackers, an RFC asked whether full-page writes are necessary at all
if you stop overwriting the checkpoint's physical page, Andres Freund started picking at SQL/PGQ's
catalog design a month before 19 ships, and someone found that ON CONFLICT DO SELECT returns a
row nobody predicate-locked. Outside the tree: DuckDB previewed 2.0 with a client/server mode and
a new PEG parser, Elasticsearch announced a columnar storage mode, and the sharpest Postgres
operations piece of the week was about a Kubernetes metric that lies to you.
PostgreSQL
- Sixteen locks ought to be enough for anybody — every query takes an
AccessShareLockon every index of every table it touches, used or not, andmax_locks_per_transactioncounts them; the arithmetic bites partitioned tables with many indexes long before anyone expects it. (Christophe Pettus · thebuild.com) - Why Postgres breaks the Kubernetes
container_memory_working_set_bytesmetric — the metric that decides whether your pod gets evicted iscurrent − inactive_file, which counts shared-buffer page cache as "working set"; Jeremy Schneider reproduces the divergence with cgroup v2 measurements, shows it neither predicts nor prevents an OOM kill for Postgres, and proposes metrics that do. Scripts and graphs are in a repo. (Jeremy Schneider · ardentperf.com) - pg_shmemviz: a shared-memory visualizer — snapshots the main and dynamic shared-memory segments to an offline file and renders a physical map, allocation table, DWARF-driven structure inspector (field offsets, compiler padding, array stride padding) and a raw-bytes view, all cross-linked and navigable through pointers across segments. The
pg_walviztreatment applied to shmem. (Bertrand Drouvot) - Failover slot synchronization in PostgreSQL — how PG17's failover slots keep a logical slot warm on a standby so a subscriber survives promotion without a full resync, written by one of the people who built it. (Ajin Cherian · Fujitsu)
[by author] - The time traveler's primary key — why UUIDv4 primary keys turn a B-tree's tidy right-edge insert pattern into random leaf-page dives, and what the time-ordered variants actually buy back. (Shaun Thomas · pgEdge)
- The insert that fails right after a clean load — explicit
idvalues never advance the sequence, so a fixture load that verifies perfectly leaves the table broken for the next insert; run against 18.6 with pasted output, and correct on the details people get wrong (setvalon a NULL does nothing;is_calleddecides whether you lose an id; identity columns change nothing except thatGENERATED ALWAYSrefuses louder). (Mikhail Shytsko · seedfa.st) - How fast are Postgres 19 graph queries? — measured against a 19beta1 build: the fixed-depth SQL/PGQ
GRAPH_TABLEquery compiles to the same plan as the hand-written join, and the variable-depth traversal — the thing graph databases exist for — still loses to a recursive CTE. Apache AGE runs the same indexed traversal behind Cypher. (Alexander Ioffe · exobench.ai) - Postgres 19: how our advice has changed since we wrote it — a decade of load/storage/index/partitioning posts revisited against current betas: which recommendations async I/O, LZ4-by-default, BRIN shapes and skip scan actually invalidated, and which still hold from the Postgres 10 era. Explicitly caveated as beta-based. (Christopher Winslett · Crunchy Data)
- The request becomes a transaction — argues the API boundary is drawn in the wrong place: authentication and HTTP adaptation belong at the network edge, but validation, authorization against current state, the state transition and result shaping all terminate in Postgres anyway, so make the transactional operation the unit of design and let REST be a binding to it. Opinionated; the testing argument (assert response and state transition in one snapshot, roll back) is the strongest part. (Alexey Evlampiev)
- Hackorum, six months on — the forum-style reader over pgsql-hackers gains CommitFest, patch and CI status icons in the topic index. Useful if you triage the list rather than read it. (Kai Wagner · Percona)
Releases
- pg_statviz 1.2 — the minimalist stats time-series extension picks up PostgreSQL 19 and a lock-analysis module. (Jimmy Angelakos)
- captures the new
wal_fpi_bytescounter frompg_stat_wal; snapshots PG18/19 I/O-worker, effective-WAL-level and autovacuum-scoring settings - new blocking locks module: per-snapshot counts of blocked and blocking sessions with a breakdown by lock type, built on
pg_blocking_pids()so soft blocks (waiting behind someone in the queue) count too; table size independent of session count - new
openaiAI provider alongside Claude/Gemini, endpoint and model selectable by env var; zero-dependency install unchanged - tested against 19 beta3 and across PostgreSQL 13–19
- captures the new
- pgColumnar 1.0-alpha2 — second alpha of the columnar table access method (previous alpha Aug 4). (Joshua Drake · Command Prompt)
- read-only Apache Iceberg support; reads and writes over S3-compatible object storage
- a maintenance daemon, plus a broad round of statistics, planner, performance and security work
- on-disk native format (PGCN v1) unchanged — existing tables read and write as before
- Loongson loong64 packages on apt.postgresql.org — a new architecture joins the official APT repository's build, sign and security-update chain. (apt.postgresql.org)
PostgreSQL mailing lists
624 messages on pgsql-hackers in the window, 90 of them new threads.
- [hackers] Umbra: reducing full-page-write amplification by physical page remapping — the week's most interesting design mail. The premise: if a checkpoint has already persisted a trustworthy physical page, why must the first modification after it copy the whole page into WAL? Rather than weakening FPW or touching page/buffer/WAL semantics upstream, the proposal keeps the checkpoint's physical page as an untouched recovery baseline and directs post-checkpoint modifications to a new physical page. A remapping layer under the buffer manager, in other words — with all the free-space, locality and vacuum questions that implies. (贾明伟 · pgsql-hackers, Aug 22)
[RFC, no patch yet] - [hackers] PGQ catalog representation and pg_dump support — Andres Freund, prefacing with "I don't know much about PGQ", proceeds to ask four questions that are hard to answer well: why do property graphs have
pg_attributerows at all when their system attributes are never referenced; why ispg_dump's dependency handling limited topg_propgraph_elementwhenpg_propgraph_property.pgtypidis also a dependency; why does that UNION arm lack the self-dependency guard every comparable arm has; and why are property graphs dumped fromdumpTableSchema(). SQL/PGQ is shipping in 19 — this is the sort of thread that decides whether a feature's catalog design survives its first release. (Andres Freund · pgsql-hackers, Aug 22)[open] - [hackers] SSI:
ON CONFLICT DO SELECTtakes no predicate lock on the returned row — a serialization anomaly in 19's newDO SELECT: the row it hands back is covered by no SIREAD lock, so a concurrent transaction can modify it and both commit. SwapDO SELECTfor a plainSELECTorSELECT FOR UPDATEand the second transaction correctly fails. Reproducer is four statements; patch takes the predicate lock and adds an isolation test. Andres Freund and Andrey Borodin both engaged. (Zsolt Parragi · pgsql-hackers, Aug 19)[patch posted] - [hackers] Right-semi and right-anti hash joins are costed as if they returned outer rows —
final_cost_hashjoin()chargescpu_tuple_costperhashjointuples, which is always counted from the outer side; butJOIN_RIGHT_SEMI/JOIN_RIGHT_ANTIemit inner rows, so the estimate is inflated by roughly the outer:inner ratio — worst precisely in the cases those join types exist for. Richard Guo's example: a 100-row table with anEXISTSover 2M rows costs the right-semi join at 56353 and picks aHashAggregateunique-ify plan instead, at 1152 ms. Found while chasing a plan diff in the UniqueKeys work; five reviewers by Friday. (Richard Guo · pgsql-hackers, Aug 17)[patch posted] - [hackers] A one-day burst of seven "semantically redundant SQL changes the plan" reports — on Aug 17 alone: a redundant
DISTINCTinside anINsubquery improving execution, a duplicatedANYpredicate turning a semijoin into a per-rowSubPlan, redundant outerDISTINCTadding Sort+Unique aboveINTERSECTand aboveEXCEPT, double negation andOR FALSEeach blockingIN-subquery pull-up, and empty inputs not propagating throughINTERSECT/EXCEPT. Reads like systematic normalisation testing rather than seven coincidences. David Rowley answered the last one: already fixed in 19 by commit03d40e4b5. (陈列行 · pgsql-hackers, Aug 17)[open] - [hackers] Python/pytest test framework, take two — Jelte Fennema-Nio restarts the pytest thread with a reworked framework, its gaps found by converting roughly half the Perl suite with an LLM (the conversions are demos, explicitly not for commit). Daniel Gustafsson and Andres Freund both replied within the day; Andres opened with a "-1" on the very first patch (don't un-truncate CI error logs — "printing 10k lines onto the fake terminal in CI makes no sense"), which sets the tone for how granular this review will be. (Jelte Fennema-Nio · pgsql-hackers, Aug 19)
[patch posted] - [hackers]
pg_stat_database.checksum_failuresmisses single-page failures in backups — filed Monday, argued through with Michael Paquier and Nazir Bilal Yavuz over three days, committed Thursday. A clean example of the whole cycle inside one digest window. (Zsolt Parragi · pgsql-hackers)[committed] - [hackers] Reduce
SyncRepLockcontention on the commit path — synchronous-replication commit throughput is bounded by a single lock; patch posted. Worth watching if you run sync rep at any concurrency. (Vadim Ponomarev · pgsql-hackers, Aug 17)[patch posted] - [hackers] Wrong results from join removal with
DISTINCT ON+ SRF subquery — a wrong-results bug, not a performance one; Tom Lane replied the same day. (Richard Guo · pgsql-hackers, Aug 22)[open] - [hackers] Apply worker can pick an invalid index for
REPLICA IDENTITY FULLlookups — logical replication picking an index that is not valid for the row-matching scan. (Mihail Nikalayeu · pgsql-hackers, Aug 22)[patch posted] - [hackers]
heapam_relation_toast_am()returns the wrong AM for a wrapped heap AM — matters to anyone shipping a table AM that wraps heap; Álvaro Herrera and Andres Freund both weighed in on what the right contract even is. (Andrew Dunstan · pgsql-hackers, Aug 21)[patch posted] - [hackers] Tracking role modification timestamps in
pg_authid/pg_roles— an operator-driven request (CloudNativePG needs to know when a role last changed) that ran straight into the "do we really want mutable timestamps in a shared catalog" objection from Andres Freund, with Ian Barwick and Andrew Dunstan in between. The design debate is the interesting part. (Gabriele Bartolini · pgsql-hackers, Aug 21)[open] - [hackers]
pg_upgrade --copy-file-rangefails with EINVAL on Linux 4.19 — a portability trap on older kernels wherecopy_file_rangeacross filesystems is rejected rather than falling back; Jakub Wartak picked it up. (达劳里亚斯 · pgsql-hackers, Aug 21)[open] - Also filed this week —
ProcArrayAdd/ProcArrayRemovein prepared transactions (Andy Fan; Matthias van de Meent replied); unsafe qual pushdown throughDISTINCTwith simpleCASEexpressions (Tender Wang); switching opclass option functions toSTRICT(Michael Paquier, with Tom Lane); a JIT-inlining SIGSEGV under LLVM 17 / GCC 13 (Grigorev Jurij);pg_current_vxact_id()v4 (Pavlo Golub); and Peter Geoghegan's own bug report behind the GIN commits below.
What landed (pgsql-committers)
- [committers] Three GIN VACUUM bugs and a GiST one, back-patched everywhere — Peter Geoghegan's week: posting-tree root split during VACUUM, multiple VACUUM scans over the pending list, posting-tree page deletion with incomplete splits, and separately GiST invalidating killed items inconsistently. Each went back six or seven branches — index-correctness work, not tuning. (Peter Geoghegan · pgsql-committers)
[committed] - [committers] Snapshot import could corrupt the xmin horizon under ProcArrayLock — a locking bug in
SET TRANSACTION SNAPSHOT's xmin publication, back-patched across all live branches. Anything that imports snapshots — parallelpg_dump, logical replication slot creation — was exposed. (Peter Geoghegan · pgsql-committers)[committed] - [committers] Outer joins get reduced to anti joins in four more shapes — Richard Guo landed a series: whole-row
IS NULLtests, LEFT JOIN reduction using quals from inside the RHS subtree, FULL JOIN → ANTI JOIN, relaxed strictness detection for row-formatIS NOT NULL, and later collecting the quals for it on demand rather than eagerly. Generated SQL that wraps everything in an outer join now has more chance of collapsing. (Richard Guo · pgsql-committers)[committed] - [committers] Online data checksums record their initial state in the control file — Daniel Gustafsson's checksum-enabling series adds
data_page_checksum_versiontopg_control_checkpointand teaches basebackup not to verify checksums on pages written before checksums were turned on — the obvious false-positive trap in any online-enable design. (Daniel Gustafsson · pgsql-committers)[committed] - [committers] Single-page checksum failures now show up in
pg_stat_database— previously a checksum failure on an individual page could pass without a counter moving; now it is countable per database. (Michael Paquier · pgsql-committers)[committed] - [committers] An aggregate can get a planner support function from
CREATE AGGREGATE— extension aggregates can now hook the planner the way built-in ones do, without a catalog hack. (Tom Lane · pgsql-committers)[committed] - [committers] RI fast-path FK checks get their own memory context and per-subtransaction accounting — Amit Langote's follow-up round on the referential-integrity fast path: don't free cached metadata from the inval callback, track batches per firing cycle then per subtransaction, and restore the after-trigger firing context at subtransaction end. The pattern of a performance feature paying its correctness debt in public. (Amit Langote · pgsql-committers)
[committed] - [committers]
WAIT FOR LSNre-registers waiters after stale wakeups — plus avoiding a lock when the waiter is already removed, a process-exit cleanup callback and doc example fixes. Shakedown week for the new statement. (Alexander Korotkov · pgsql-committers)[committed] - [committers] postgres_fdw pushes a FUNCTION RTE into a foreign join — set-returning-function scans joined against foreign tables can now go to the remote side instead of forcing a local join. (Alexander Korotkov · pgsql-committers)
[committed] - [committers] Memoize tuples get cheaper to store — per-tuple memory overhead in the Memoize cache reduced, so the same
work_memholds more entries before eviction starts. (David Rowley · pgsql-committers)[committed] - [committers] Stream abort on a transaction that was never streamed — logical-decoding fix; also
test_decodingno longer prints virtual generated columns, and Michael Paquier fixed a relcache reference leak when decoding TRUNCATE. (Masahiko Sawada, Michael Paquier · pgsql-committers)[committed] - Master grab-bag — postmaster failing to exit when the startup process crashes during crash recovery and
execdebug.hretired (Michael Paquier); TOAST storage parameters given unsettable defaults (Nathan Bossart); formatting.c's fixed-size output buffers replaced with StringInfo andtsqueryout()likewise (Tom Lane); allpg_locale.hAPIs made to work withcollate_is_c(Jeff Davis);pg_parse_lsn()used for server-supplied LSNs (Fujii Masao); a bogusfind_composite_type_dependencies()call skipped on sequences (Heikki Linnakangas).[committed]
CommitFest (open: PG20-2, #61)
- Balance (Aug 17 15:24 – Aug 21 03:48, partial): 17 new · 11 closed (8 committed / 3 withdrawn) → net +6. Queue totals as of Monday: 292 needs review · 23 waiting on author · 54 ready for committer · 50 committed · 23 moved · 9 withdrawn · 1 rejected · 1 returned — 453 total. (vs last week's 413: total +40, ready-for-committer +10, committed +11, needs-review +18 — the September CF is filling up fast.)
- New this week: Write Combining (Melanie Plageman) — the checkpointer write-combining thread, open since September 2025, finally gets a CommitFest record at v16: nineteen patches, +2212/−420, batching buffer writebacks during
BufferSyncand eagerly flushing the bulkwrite strategy ring. Also filed: Unlogged materialized views and autovacuum parameter propagation (Zsolt Parragi),pg_stat_log— cumulative statistics about server log messages (Fabrízio Mello), extended statistics applied to join clauses during parameterized path costing, SQL/PGQ multi-pattern path matching inGRAPH_TABLE,aio: don't silently dropwait_event_info, and dropping a composite attribute causes data-integrity violations. - Closed: DELETE FOR PORTION OF vs
WITH CHECK OPTION(#7050, committed),repack_is_permitted_for_relation()ACL tightening (#7096, committed), virtual generated columns intest_decoding(#7099, committed), injection-point wait-slot leak (#7037, committed), formatting.c StringInfo pair (#7146/#7147, committed), autoanalyze corner-case docs (#6831, committed),getdatabaseencoding()docs (#7029, committed); withdrawn: EXPLAIN SERIALIZEOFFalias (#6855), autovacuum loop on a failing virtual generated column (#7100), a duplicateis_table_publicationentry (#7042). - Promoted to Ready for Committer: seven, including
pg_plan_adviceFOREIGN_JOIN sublist validation, a planner support function for two-argumentregexp_like(), the CP949/EUC-KR encoding-validation pair, and BUG #19597'sgetQuadrant()"impossible case".
Community pulse
- PostgreSQL for everything — Raphael Bauer's case for collapsing queue, cache, search, cron and analytics into one Postgres; 267 comments arguing the boundary, mostly along "until you can't" lines, with the strongest replies putting numbers on where each substitute stops scaling. A SQLite-for-everything counterpart drew its own 19-comment thread on Lobsters the same week. (Hacker News · 438 pts, 267 comments)
- Rethinking database programming — "what if SQL were like Elm": a typed, composable query language proposal that got taken seriously enough to spawn a long argument about whether SQL's problems are in the language, the drivers, or the ORMs — and a parallel 140-point r/programming thread. (acadia.engineering · Hacker News 259 pts, 160 comments)
- Things I want in a modern relational query language — the post is a wish list; the 12-comment Lobsters thread is the useful part, with people naming which of the wishes already exist somewhere (PRQL, Rel,
FROM-first syntax) and which are genuinely hard. (Lobsters · 12 comments) - What are you using for Postgres after outgrowing the free tier but not needing AWS? — zero points, 27 comments: the recurring managed-Postgres pricing-cliff thread, this time with a companion post from someone leaving Cloud SQL and asking what HA/backup stack to self-run. Sort by comments, not score, or you miss these. (r/PostgreSQL · 0 pts, 27 comments)
- Why does
ORDER BY … LIMIT 200choose a 15× slower ordered index scan? — the one genuinely interesting DBA Stack Exchange question of the week: the classic LIMIT-plus-ordered-index trap where the planner assumes rows are found early and they aren't. Notable that it was asked against PolarDB-for-PostgreSQL — the fourth week running that PolarDB questions cluster there. (DBA Stack Exchange · 2 votes, 2 answers)
Wider DBMS & distributed data
- A preview of DuckDB v2.0 — the in-process database grows a process boundary: a client/server mode via the Quack extension and a
CONNECTstatement, so any DuckDB can serve databases over the network. Also triggers, a first-classVARIANTtype, asynchronous I/O that scales independently of query processing, a stable C API that lets extensions compile from one header and survive releases without recompiling, a new storage format, and a rewritten recursive-CTE engine (a recursive benchmark runs 40× faster than 1.5.4). Nightly-only; release targeted for autumn. (DuckDB) - DuckDB v2.0: your database deserves a better parser — the companion piece on replacing the Postgres-derived bison parser with a PEG grammar: better error messages, incremental parsing and a grammar you can actually read. Postgres hackers who have stared at
gram.ywill have opinions. (DuckDB) - Why Elasticsearch is becoming a columnar database — "Columnar Mode" ships in 9.5, storing data column-wise for logs, telemetry, metrics and analytics workloads while leaving APIs and integrations untouched. The interesting part for engine people is that it sits alongside the existing modes on the same data in the same cluster, rather than replacing the inverted index. (Elastic search-labs)
[vendor blog — substantive] - Encoding or compression: why not both? — measured on ClickBench's ~100M-row hits table: zstd-19 took 32.6 s on the string column and 19.1 s on the numeric one, versus under 30 ms for encoding — but the real argument is structural, not the timing. A compressed block is opaque: no binary search, no per-value random access, no comparing two values without decoding both. (CedarDB)
- Poisoned Postgres connection pools — in PgBouncer transaction mode a client that sets
default_transaction_read_only = onor session characteristics leaves that state on the shared backend, and the next tenant gets SQLSTATE 25006, "cannot execute INSERT in a read-only transaction", from a perfectly healthy primary. How to tell a poisoned pool from a genuinely read-only database. (PlanetScale)[vendor blog — substantive]
Commercial engines (SQL Server, Oracle, MySQL, …)
- Concurrency vs. throughput: why more parallelism can make databases slower — a real Vitess/MySQL incident where one long-running query plus ten thousand admitted requests filled the transaction pool; because that pool fails rather than queues, throughput collapsed while concurrency climbed. The general lesson (past the efficient point each extra in-flight query slows all the others) transfers straight to Postgres connection sizing. (PlanetScale)
Research & cutting edge
- Building an integrated vector database system in PostgreSQL — Jianguo Wang's group on what it takes to make vector search a first-class part of a relational engine rather than an extension bolted beside it: storage, indexing and the planner's view of ANN operators. (Liu, Guo, Wang · Aug 18) [paper]
- Logos: certified order-sensitive SQL rewrites with mechanized semantics and LLM guidance — an LLM proposes the rewrite, a mechanized semantics proves it preserves order-sensitive results; the interesting bit is treating "SQL is not bag-of-rows once
ORDER BY/LIMITenter" as a formal obligation rather than a footnote. (Ke, Li, Li · Aug 18) [paper] - Stop indexing at full precision: revisiting clustering for vector embeddings — Kuffo and Boncz (CWI) argue that building the index over quantized vectors, not full-precision ones, changes the cost/recall trade-off enough to be the default. VLDB 2026 vector-databases workshop. (Kuffo, Boncz · Aug 18) [paper]
- Rerootable hypertree decompositions — join-order theory: decompositions that can be re-rooted without recomputation, which is what you want when the same query shape is evaluated from different entry points. Koch, Pichler and Qichen Wang among the authors. (Jiang, Koch, Lindner, Pichler, Wang · Aug 19) [paper]
- Which eviction policy should an LLM cache use? — a systematic sweep across workloads, capacities and encoders; a rare piece of buffer-management empiricism in a subfield that mostly assumes LRU and moves on. (Kulkarni, Harkare, Babu · Aug 21) [paper]
International (non-English sources)
- ora2pg moves about 80% of an Oracle schema — what happens to the other 20% — the migration report the tool vendors don't write: what ora2pg leaves on the floor (packages, autonomous transactions, hierarchical queries,
NUMBERsemantics, empty-string-is-NULL) and how the remaining fifth actually gets rewritten. (habr.com, Aug 22) [ru] (orig: «ora2pg переносит около 80% Oracle‑схемы. А что происходит с оставшимися 20%?») - Why is PostgreSQL's
numerictype so slow? — the storage layout and per-operation arithmetic that makenumericthe expensive default, with measurements against the fixed-width types. Sequel to the same team's "why is numeric so popular" piece from the previous week. (Tantor · habr.com, Aug 22) [ru] (orig: «Почему типnumericв PostgreSQL такой медленный?») - REPACK in PostgreSQL 19: repacking in core, and as always the devil is in the details — what the in-core
REPACKcommand does and does not replace frompg_repack, including the lock windows and the cases where it still rewrites more than you expected. (habr.com, Aug 20) [ru] (orig: «REPACK в PostgreSQL 19: перепаковка в ядре и, как всегда, дьявол в деталях») - Four CTE anti-patterns, read off
EXPLAIN ANALYZE— post-12 CTEs inline by default, which changed which mistakes are expensive; four concrete shapes with the plans that expose them. (habr.com, Aug 20) [ru] (orig: «Четыре антипаттерна CTE в PostgreSQL: разбираем на EXPLAIN ANALYZE») - The dark side of compression in PostgreSQL — where TOAST compression costs more than it saves, and how to see it. (Tantor · habr.com, Aug 19) [ru] (orig: «The dark side of компрессия в PostgreSQL»)
- NVMe does 600,000 writes a second and the database commits 180 — the gap between raw device throughput and committed transactions per second, walked back through WAL flush, fsync semantics and group commit. (OTUS · habr.com, Aug 19) [ru] (orig: «NVMe выдаёт 600 000 записей в секунду, а база коммитит 180»)
~58 items · sources scanned: Planet PostgreSQL (live, full window), pgsql-hackers via the official archive (624 messages / 90 new threads enumerated across Aug 17–23), pgsql-committers via mail-archive (thread index fresh through Sunday, msg48301–msg48509), postgresql.org news archive + events page, CommitFest #61 detail page and per-CF activity log, HN via the Algolia API (8 keyword queries over the Aug 17–23 epoch window, verified points/comments), Lobsters /t/databases, seven subreddits via the read-only JSON API sorted by comment count, DBA Stack Exchange via the API, arXiv cs.DB (Aug 18–21 day-buckets enumerated), Habr PostgreSQL hub [ru], blog.vonng.com [zh], blog.dalibo.com [fr], publickey1.jp [ja], Qiita [ja] · filtered out as marketing/ads: ~11 (a browser-IDE launch post, an operator-in-10-minutes tutorial that is mostly product, an "every AI agent needs Postgres" thought-leadership piece, three CRM-integration guides riding the Postgres tag, two managed-service comparison posts, a hosted-benchmark landing page, a conference-sponsor announcement) · out of window but adjacent: the Cassandra 6 ACID write-up (Aug 16) and Tailscale's SQLite WAL-reset post (Aug 11–12, covered last week).
Source note: browser reached via the Control_Chrome MCP server again (check it first — the claude-in-chrome extension is not the only path). Plain web_fetch worked for planet.postgresql.org, postgresql.org, commitfest.postgresql.org, mail-archive, arxiv.org, blog.dalibo.com and publickey1.jp once each domain was seeded by a search; habr, Reddit, Lobsters, HN Algolia and blog.vonng.com needed the browser. CommitFest: the per-CF activity log's ~100-row cap again ate the start of the window — the earliest reachable row was Mon 15:24, and the newest was Fri 03:48, so Fri–Sun flow is not represented either; the balance above is explicitly partial and the queue-total delta is the more reliable number. Mailing lists — solved. The official archive at postgresql.org/list/pgsql-hackers/<YYYY-MM>/ renders fully in a browser (it is only plain web_fetch that returns an empty shell — which is why four previous runs concluded "unreachable"). The month page carries a "Jump to day" strip of /list/pgsql-hackers/since/YYYYMMDD0000/ links; a same-origin fetch() of each day URL returns parseable HTML where the subject anchor lives in th[scope=row], not a td (the parsing trap that cost this run two attempts), with author and time in the two tds. /message-id/flat/<id> then gives whole threads. mail-archive's hackers mirror is still unseedable, and marc.info returns an empty body — neither is needed. Non-English: [ru] was the productive language by a wide margin (nine in-window Postgres posts on the Habr hub); [zh] blog.vonng.com newest post is Aug 14 and modb.pro remains unenumerable even in a browser; [fr] blog.dalibo.com's only in-window item was a newsletter announcement; [ja] publickey1.jp published seven in-window articles with zero database items and Qiita surfaced nothing in-window above the bar — all four verified quiet rather than unscanned. No CFP opened in-window, and no conference enters the 24–30-day horizon (Sep 16–22 is empty; Postgres Summit US lands in a later digest), so both conference sections are omitted. Nothing marked [unverified] this week — every claim above traces to a commit, a CommitFest record, a primary announcement, or the post's own measurements.