<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Postgres Weekly</title>
    <description>A weekly email roundup of Postgres news and articles</description>
    <link>https://postgresweekly.com/</link>
    <item>
      <title>MERGE/SPLIT PARTITION reverted again</title>
      <link>https://postgresweekly.com/issues/663</link>
      <description>

  

    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​663 — September 2, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189763/rss" style=" color: #0088bb;"&gt;Web Version&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Postgres Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189731/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hfb97u0pwpy9p7faaaif.jpg" width="640" style="    line-height: 1.0em;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189731/rss" title="boringsql.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;Read Your Own Writes Off the Primary: &lt;code&gt;WAIT FOR&lt;/code&gt; Measured&lt;/a&gt;&lt;/span&gt; — Last week, we shared an item explaining &lt;a href="https://postgresweekly.com/link/189732/rss" style=" color: #0088bb;"&gt;what Postgres 19's &lt;code&gt;WAIT FOR&lt;/code&gt; &lt;em&gt;is&lt;/em&gt;&lt;/a&gt;. Now, Radim puts it to the test: naive replica reads were stale 992 times out of 1,000 even over loopback, but &lt;code&gt;WAIT FOR&lt;/code&gt; gets that to zero with ~1-2ms overhead.&lt;/p&gt;
  &lt;p&gt;Radim Marek &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/189730/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/4cbdc631.png" width="160" height="40" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189730/rss" title="www.enterprisedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Postgres in the Agentic Era: A Forrester Fireside&lt;/a&gt;&lt;/span&gt; — Forrester's Indranil Bandyopadhyay joins EDB's Lizzy Nguyen to unpack the multimodel data-platform market: where it's heading, what convergence unlocks, and how to map your workloads before you commit. Based on The Forrester Wave, Q2 2026.&lt;/p&gt;
  &lt;p&gt;EnterpriseDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189733/rss" title="tapoueh.org" style=" color: #0088bb; font-size: 1.05em;"&gt;Introducing YeSQL: Practical Postgres, One Concept at a Time&lt;/a&gt;&lt;/span&gt; — 27 free SQL lessons (&lt;a href="https://postgresweekly.com/link/189734/rss" style=" color: #0088bb;"&gt;located here&lt;/a&gt;) covering things like &lt;code&gt;NULL&lt;/code&gt; semantics, window frames, &lt;code&gt;LATERAL&lt;/code&gt; joins, and reading &lt;code&gt;EXPLAIN&lt;/code&gt; results. Queries run in your browser using &lt;a href="https://postgresweekly.com/link/189735/rss" style=" color: #0088bb;"&gt;PGlite&lt;/a&gt; with no signup needed.&lt;/p&gt;
  &lt;p&gt;Dimitri Fontaine &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;⭐ &lt;a href="https://postgresweekly.com/link/189736/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Postgres 19 has dropped &lt;code&gt;ALTER TABLE … MERGE/SPLIT PARTITION(S)&lt;/code&gt;&lt;/a&gt; after &lt;a href="https://postgresweekly.com/link/189737/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;the release team requested a revert&lt;/a&gt; over unresolved design issues. It's the second time the feature has been pulled (previously in Postgres 17). Fingers crossed for Postgres 20.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tiger Data asked several industry watchers &lt;a href="https://postgresweekly.com/link/189738/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;why a '40-year-old database' is still winning in the AI era&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;❓ So is Postgres 30 or 40? Both! &lt;a href="https://postgresweekly.com/link/189739/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;The docs' history page&lt;/a&gt; dates Berkeley's &lt;em&gt;"POSTGRES"&lt;/em&gt; to 1986, which is where Tiger's 40 comes from, while &lt;a href="https://postgresweekly.com/link/189740/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;the &lt;em&gt;30th&lt;/em&gt; birthday we noted in July&lt;/a&gt; marks when Postgres95 got its first public CVS server (essentially the start of the community-run project).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇬🇧 &lt;a href="https://postgresweekly.com/link/189741/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PGDay UK 2026&lt;/a&gt; takes place next week (September 8) in London. Tickets are still available.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189742/rss" title="andyatkinson.com" style=" color: #0088bb; font-size: 1.05em;"&gt;23x Faster Inserts with UUID v7 in Postgres 18&lt;/a&gt;&lt;/span&gt; — Switching to &lt;code&gt;uuidv7()&lt;/code&gt; hugely cut insert times on a billion-row table (versus the previously used v1 and v4 keys), though the &lt;code&gt;ALTER TABLE&lt;/code&gt; needed an access exclusive lock and a jittered retry loop to complete the switchover.&lt;/p&gt;
  &lt;p&gt;Andrew Atkinson &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189743/rss" title="richyen.com" style=" color: #0088bb; font-size: 1.05em;"&gt;A Look into Postgres 19's Many &lt;code&gt;pg_catalog&lt;/code&gt; Changes&lt;/a&gt;&lt;/span&gt; — &lt;code&gt;pg_catalog&lt;/code&gt; is a valuable source of information about the structure, objects, and inner workings of your database. &lt;a href="https://postgresweekly.com/link/189744/rss" style=" color: #0088bb;"&gt;pg-catalog-almanac&lt;/a&gt; lets you look at how the catalog's structure has changed over the years, and Richard has three highlights to share.&lt;/p&gt;
  &lt;p&gt;Richard Yen &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;🤩 As of beta 3, Postgres 19 has the most &lt;code&gt;pg_catalog&lt;/code&gt; changes of any recent release, adding 12 catalogs and views plus 43 columns, so this almanac could be useful!&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189745/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_tre and pg_re2: New Options for Regexes in Postgres&lt;/a&gt;&lt;/span&gt; — Benchmarks of two new regular expression extensions against &lt;a href="https://postgresweekly.com/link/189746/rss" style=" color: #0088bb;"&gt;pg_trgm&lt;/a&gt; on a 33GB table. ClickHouse's &lt;a href="https://postgresweekly.com/link/189747/rss" style=" color: #0088bb;"&gt;pg_re2&lt;/a&gt; wins on speed, while &lt;a href="https://postgresweekly.com/link/189748/rss" style=" color: #0088bb;"&gt;pg_tre&lt;/a&gt; offers &lt;em&gt;fuzzy&lt;/em&gt; matching but took hours to index.&lt;/p&gt;
  &lt;p&gt;Hubert 'depesz' Lubaczewski &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189749/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Postgres Isn't Slow: Your Storage Is&lt;/a&gt; – Writeup of &lt;a href="https://postgresweekly.com/link/189750/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;a POSETTE 2026 talk&lt;/a&gt; on benchmarking local NVMe storage vs EBS showing how network storage's latency can compound. &lt;cite&gt;Sai Srirampur / ClickHouse&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189751/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;New System Views in Postgres 19&lt;/a&gt; – A look at &lt;code&gt;pg_stat_lock&lt;/code&gt;, &lt;code&gt;pg_stat_recovery&lt;/code&gt;, &lt;code&gt;pg_stat_autovacuum_scores&lt;/code&gt; and &lt;code&gt;pg_dsm_registry_allocations&lt;/code&gt;. &lt;cite&gt;Gülçin Yıldırım Jelínek&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES AND CODE:&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189752/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sj8mvqfrsfjkudthhf5r.jpg" width="640" style="        line-height: 1.0em;  "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189752/rss" title="pgterm.dev" style=" color: #0088bb; font-size: 1.05em;"&gt;pgterm: &lt;code&gt;htop&lt;/code&gt; For All Your Postgres Databases&lt;/a&gt;&lt;/span&gt; — A Rust TUI with a tab per Postgres database, background health checks, and views for queries, indexes and tables. Under the hood, the diagnostics come from &lt;a href="https://postgresweekly.com/link/189753/rss" style=" color: #0088bb;"&gt;pgbot&lt;/a&gt; which we featured last week. The &lt;a href="https://postgresweekly.com/link/189754/rss" style=" color: #0088bb;"&gt;GitHub repo&lt;/a&gt; README has more info.&lt;/p&gt;
  &lt;p&gt;Alex Shapalov &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189755/rss" title="bdrouvot.github.io" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_shmemviz: Visualize Postgres Shared Memory in Your Browser&lt;/a&gt;&lt;/span&gt; — Renders allocations, C struct fields, padding and raw bytes, reading DWARF from your own &lt;code&gt;postgres&lt;/code&gt; binary (dev instances only). You can diff snapshots too.&lt;/p&gt;
  &lt;p&gt;Bertrand Drouvot &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📊&lt;/span&gt; &lt;a href="https://postgresweekly.com/link/189756/rss" title="powa.readthedocs.io" style=" color: #0088bb; font-size: 1.05em;"&gt;PoWA (PostgreSQL Workload Analyzer) 5.3&lt;/a&gt;&lt;/span&gt; — A tool for collecting and aggregating metrics from multiple instances which can then be viewed through real-time charts to help optimize your setup. v5.3 improves Postgres 19 compatibility.&lt;/p&gt;
  &lt;p&gt;PoWA Team &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189757/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Doltgres 1.3&lt;/a&gt; – Version-controlled Git-like database (built on top of &lt;a href="https://postgresweekly.com/link/189758/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Dolt&lt;/a&gt;) with Postgres wire protocol support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189759/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Stateless Postgres Query Router (SPQR) 3.1&lt;/a&gt; – Production-ready Postgres sharding solution built by Yandex Cloud.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189764/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_trickle 0.91.0&lt;/a&gt; – Extension providing declarative stream tables with incremental view maintenance via differential dataflow.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189761/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;sabiql 3.0&lt;/a&gt; – TUI for browsing, querying, and editing databases atop &lt;code&gt;psql&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;SOME POSTGRES STATS FROM DATADOG:&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189762/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/h7seqwjyy4nrsrvxqgwl.jpg" width="640" style="    line-height: 1.0em;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189762/rss" title="www.datadoghq.com" style=" color: #0088bb; font-size: 1.05em;"&gt;The State of Postgres in 2026&lt;/a&gt;&lt;/span&gt; — An analysis of data from Datadog's many customers running its APM and monitoring agents shows Postgres adoption keeps climbing, but only 15% of instances set &lt;code&gt;statement_timeout&lt;/code&gt;, covering indexes make up 0.3% of all indexes, 22% of tables have a (rarely indexed!) JSONB column, &lt;code&gt;pgvector&lt;/code&gt; is the fastest-growing non-bundled extension, and more.&lt;/p&gt;
  &lt;p&gt;Datadog &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;🤔 They also found Postgres backends spent 56% of sampled time &lt;em&gt;idle&lt;/em&gt; in open transactions, apparently waiting on applications, versus just 37% doing database work.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
     
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://postgresweekly.com/open/663/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 2 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/663</guid>
    </item>
    <item>
      <title>28 CVEs and a GROUP BY ALL U-turn</title>
      <link>https://postgresweekly.com/issues/662</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​662 — August 26, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189438/rss" style=" color: #0088bb;"&gt;Web Version&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;🏖️ After a week of being Disneyed-out, I return tired, but more ready than ever to dive back into the (far less humid) waters of Postgres!&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Postgres Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189407/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dgkdziqztsotu3zsbej3.jpg" width="640" style="    line-height: 1.0em;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189407/rss" title="www.crunchydata.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;Eight Years of Postgres Advice, Re-Checked Against Postgres 19&lt;/a&gt;&lt;/span&gt; — A look back at years of advice on &lt;code&gt;COPY&lt;/code&gt;, TOAST, BRIN, covering indexes and partitioning, checking which behaviors and practices have changed over time. Per-topic tables show which version moved each needle, so it's a useful recap whatever version you're on.&lt;/p&gt;
  &lt;p&gt;Christopher Winslett (Crunchy Data) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/189406/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8a4895a1.png" width="143" height="105" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189406/rss" title="paradedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Coming soon: ParadeDB Cloud&lt;/a&gt;&lt;/span&gt; — We're building a fully managed ParadeDB: one Postgres for your application data, full-text search, vector retrieval, and aggregations. &lt;a href="https://postgresweekly.com/link/189406/rss" style=" color: #0088bb;"&gt;Our early access waitlist is open now&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;ParadeDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189408/rss" title="www.postgresql.org" style=" color: #0088bb; font-size: 1.05em;"&gt;Postgres 18.6, 17.11, 16.15, 15.19, and 14.24 Released&lt;/a&gt;&lt;/span&gt; — Landing just a day after our last issue, a huge round of releases including fixes for 28 CVEs. It isn't a simple update for everyone, either. GIN users on Postgres 18 need to check &lt;code&gt;reltuples&lt;/code&gt; values, while users of &lt;code&gt;btree_gist&lt;/code&gt; and &lt;code&gt;ltree&lt;/code&gt; may need to reindex (see the &lt;em&gt;"Updating"&lt;/em&gt; section for full details).&lt;/p&gt;
  &lt;p&gt;PostgreSQL Global Development Group &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 As part of the above wave of releases, &lt;a href="https://postgresweekly.com/link/189408/rss" style=" color: #0088bb; font-weight: 600;"&gt;Postgres 19 Beta 3&lt;/a&gt; was also released with a large number of fixes and, notably, &lt;b&gt;support for &lt;a href="https://postgresweekly.com/link/189409/rss" style=" color: #0088bb; font-weight: 600;"&gt;&lt;code&gt;GROUP BY ALL&lt;/code&gt;&lt;/a&gt; was removed&lt;/b&gt; with its implementation pushed back to Postgres 20 – &lt;a href="https://postgresweekly.com/link/189410/rss" style=" color: #0088bb; font-weight: 600;"&gt;more details here&lt;/a&gt;.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pavel Stehule has created &lt;a href="https://postgresweekly.com/link/189411/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;lua-psql&lt;/a&gt;, a set of patches to add experimental support for Lua into &lt;code&gt;psql&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Who helped Postgres take over the world? &lt;a href="https://postgresweekly.com/link/189412/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Michael Stonebraker's surprising answer&lt;/a&gt; is… Oracle!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇺🇸 Tickets for &lt;a href="https://postgresweekly.com/link/189413/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Postgres Summit US 2026&lt;/a&gt;, taking place in NYC this September 30-October 2, are still available. &lt;a href="https://postgresweekly.com/link/189414/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Here's the schedule&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎧 In the latest episode of &lt;a href="https://postgresweekly.com/link/189415/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Talking Postgres&lt;/a&gt;, Claire Giordano &lt;a href="https://postgresweekly.com/link/189416/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;caught up with Datasette creator Simon Willison&lt;/a&gt; to discuss how AI is changing software development.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189417/rss" title="clickhouse.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Read Your Writes: &lt;code&gt;WAIT FOR&lt;/code&gt; in Postgres 19&lt;/a&gt;&lt;/span&gt; — A new SQL command (&lt;a href="https://postgresweekly.com/link/189418/rss" style=" color: #0088bb;"&gt;a decade in the making&lt;/a&gt;) that lets a session block until WAL reaches a specified position. So a read on an async replica can wait for the write it needs to see, rather than forcing every commit to wait for the standby.&lt;/p&gt;
  &lt;p&gt;Gülçin Yıldırım Jelínek (ClickHouse) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189419/rss" title="brandur.org" style=" color: #0088bb; font-size: 1.05em;"&gt;Does Anyone Run Postgres Without PgBouncer?&lt;/a&gt;&lt;/span&gt; — A survey of 20 managed providers shows nearly all bundle PgBouncer (or something similar) out of the box. So, asks Brandur, isn't it time pooling was just part of Postgres?&lt;/p&gt;
  &lt;p&gt;Brandur Leach &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💬 There's plenty of pushback in the &lt;a href="https://postgresweekly.com/link/189420/rss" style=" color: #0088bb; font-weight: 600;"&gt;Hacker News discussion&lt;/a&gt;, though, from those who think an app-side pool is all that's needed.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189421/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Looking Forward to Postgres 19: Syntax Potpourri&lt;/a&gt; – A quick tour of assorted syntactic niceties. &lt;cite&gt;Shaun Thomas&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189422/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Why Postgres Breaks Kubernetes' &lt;code&gt;container_memory_​working_set_bytes&lt;/code&gt; Metric&lt;/a&gt;  &lt;cite&gt;Jeremy Schneider&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189423/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Building Safe MCP Servers for Your Postgres Database&lt;/a&gt;  &lt;cite&gt;Pamela Fox (Microsoft)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189424/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Migrating Multilingual Full-Text Search from SQL Server to Postgres&lt;/a&gt;  &lt;cite&gt;Zhang and Ahmed (AWS)&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
    &lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;Build a real-time dashboard on a live machine-data stream, on Postgres. Free workshop, Sept 9 at Noon ET. &lt;a href="https://postgresweekly.com/link/189434/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Save your spot&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;❄️ &lt;a href="https://postgresweekly.com/link/189435/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;GDPR deletion on archived data&lt;/a&gt;: one SQL, not a restore cycle. ColdFront's cold tier is writable. &lt;a href="https://postgresweekly.com/link/189435/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Open source&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES AND CODE:&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189425/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/z4ycqvi9jvlvyttgn7ii.jpg" width="640" style="        line-height: 1.0em;  "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189425/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_statviz 1.2: Time Series Analysis and Visualization of Postgres Stats&lt;/a&gt;&lt;/span&gt; — An extension and utility pairing for performing time series analysis and visualization of various statistics around I/O, locks, WAL, buffer use, and more. v1.2 adds Postgres 19 support, a blocking locks analysis module, and supports using OpenAI-compatible endpoints for AI analysis of the results.&lt;/p&gt;
  &lt;p&gt;Jimmy Angelakos &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189439/rss" title="pgbot.dev" style=" color: #0088bb; font-size: 1.05em;"&gt;pgbot: Postgres Intelligence for AI Agents and Apps&lt;/a&gt;&lt;/span&gt; — A Go-powered, single binary read-only tool that connects to a Postgres server and prints a graded health report plus what changed since the last run. Only two weeks old, so early days. &lt;a href="https://postgresweekly.com/link/189426/rss" style=" color: #0088bb;"&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Alex Shapalov &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://postgresweekly.com/link/189427/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_textsearch 1.4&lt;/a&gt; – Tiger Data's BM25 ranked text search extension now supports Chinese and has big speedups for top-K queries that use &lt;code&gt;WHERE&lt;/code&gt; filters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189428/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgGraph 1.2&lt;/a&gt; – Graph indexing, search and traversal over ordinary tables. No longer has a 254 label ceiling; graphs can now contain up to 1 million distinct types.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189429/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_stat_ch 0.4&lt;/a&gt; – Captures per-query execution telemetry and exports it to ClickHouse for analysis in real-time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;a href="https://postgresweekly.com/link/189430/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostGIS 3.7.0 RC1&lt;/a&gt; – The popular geospatial data extension. Fixes bugs and targets Postgres 19 Beta 3.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189431/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgBackRest 2.59.1&lt;/a&gt; – Popular reliable backup and restore solution. It, too, now supports Postgres 19 Beta 3.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189433/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PGSync 7.3&lt;/a&gt; – Middleware for syncing data from Postgres to Elasticsearch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189432/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostgREST 16.2&lt;/a&gt; – Serve a fully RESTful API from an existing database.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
     
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://postgresweekly.com/open/662/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/662</guid>
    </item>
    <item>
      <title>A gofmt-style formatter for SQL</title>
      <link>https://postgresweekly.com/issues/661</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​661 — August 12, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189153/rss" style=" color: #0088bb;"&gt;Web Version&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;🏖️ &lt;strong&gt;We're taking a summer break next week,&lt;/strong&gt; so the next issue will be on August 26.&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Postgres Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/189123/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mmevx99yjrirxdxontes.jpg" width="640" style="    line-height: 1.0em;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189123/rss" title="tapoueh.org" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;Introducing &lt;code&gt;sqlfmt&lt;/code&gt;: An SQL &lt;code&gt;gofmt&lt;/code&gt;-Style Formatter&lt;/a&gt;&lt;/span&gt; — Postgres contributor Dimitri has developed his own way to style SQL over time (as used in his book, &lt;a href="https://postgresweekly.com/link/189124/rss" style=" color: #0088bb;"&gt;&lt;em&gt;The Art of PostgreSQL&lt;/em&gt;&lt;/a&gt;) and built a Go tool to apply it automatically. Better still, &lt;a href="https://postgresweekly.com/link/189125/rss" style=" color: #0088bb;"&gt;you can use it on the Web&lt;/a&gt;, so if you're prepping a presentation or blog post, give it a try on your queries.&lt;/p&gt;
  &lt;p&gt;Dimitri Fontaine &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/189122/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/358d08eb.png" width="153" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189122/rss" title="paradedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Coming Soon: ParadeDB Cloud&lt;/a&gt;&lt;/span&gt; — We're building a fully managed ParadeDB: one Postgres for your application data, full-text search, vector retrieval, and aggregations. Our early access waitlist is open now.&lt;/p&gt;
  &lt;p&gt;ParadeDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189126/rss" title="planetscale.com" style=" color: #0088bb; font-size: 1.05em;"&gt;The Dangers of Postgres Subtransactions&lt;/a&gt;&lt;/span&gt; — A transaction with more than 64 subtransactions can bring a cluster to a crawl. A &lt;code&gt;pgbench&lt;/code&gt; run shows throughput falling from 7,200 TPS to 160 TPS, and it gets worse: a new read replica can refuse connections entirely.&lt;/p&gt;
  &lt;p&gt;Nidzwetzki and Berube (PlanetScale) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;⏰ &lt;strong&gt;Postgres's quarterly minor releases are expected tomorrow, August 13.&lt;/strong&gt; Nothing has been announced as we go to press, but since we're away next week you'll want to &lt;a href="https://postgresweekly.com/link/189127/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;check the release notes&lt;/a&gt; yourself — expect updates across every supported branch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Electric&lt;/em&gt;, the team behind &lt;a href="https://postgresweekly.com/link/189129/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PGlite&lt;/a&gt; (Postgres compiled to WASM) and the Electric sync engine, is &lt;a href="https://postgresweekly.com/link/189128/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;joining the Neon team at Databricks&lt;/a&gt;. Here's &lt;a href="https://postgresweekly.com/link/189130/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Electric's side of the story&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;QUICK RELEASES:&lt;/strong&gt; &lt;a href="https://postgresweekly.com/link/189131/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pg_clickhouse 0.10.0&lt;/a&gt;, &lt;a href="https://postgresweekly.com/link/189132/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PostgREST 16.0&lt;/a&gt; (and &lt;a href="https://postgresweekly.com/link/189154/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;16.1&lt;/a&gt;), &lt;a href="https://postgresweekly.com/link/189133/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Citus 14.2&lt;/a&gt;, &lt;a href="https://postgresweekly.com/link/189134/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Doltgres 1.0&lt;/a&gt;, &lt;a href="https://postgresweekly.com/link/189135/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pgAdmin 4 9.17&lt;/a&gt;, &lt;a href="https://postgresweekly.com/link/189136/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;E-Maj 5.0&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189137/rss" title="malisper.me" style=" color: #0088bb; font-size: 1.05em;"&gt;Rebuilding Postgres for 300x Faster Analytics&lt;/a&gt;&lt;/span&gt; — The creator of &lt;a href="https://postgresweekly.com/link/189138/rss" style=" color: #0088bb;"&gt;pgrust&lt;/a&gt;, an attempt to rewrite Postgres in Rust, reflects on the power of batching, operator fusion and SIMD in a query engine.&lt;/p&gt;
  &lt;p&gt;Michael Malis &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/189139/rss" title="launchbylunch.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Introducing &lt;code&gt;pg-java&lt;/code&gt;: A New Postgres Driver for the JVM&lt;/a&gt;&lt;/span&gt; — A long-time &lt;a href="https://postgresweekly.com/link/189140/rss" style=" color: #0088bb;"&gt;pgjdbc&lt;/a&gt; maintainer explains why he created a from-scratch, Postgres-first JVM driver built on virtual threads: &lt;a href="https://postgresweekly.com/link/189141/rss" style=" color: #0088bb;"&gt;pg-java&lt;/a&gt;. It's still considered &lt;em&gt;pre-release&lt;/em&gt; though.&lt;/p&gt;
  &lt;p&gt;Sehrope Sarkuni &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189142/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Modelling State Transitions in Postgres&lt;/a&gt; – When an attribute changes over time and those changes matter, model it as a separate table of timestamped rows. &lt;cite&gt;Thiago Araújo Silva &lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189145/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Choosing the Right Postgres Partition Key&lt;/a&gt; – You can partition a huge table 'perfectly', yet still have the slow queries stay just as slow… &lt;cite&gt;Umair Shahid (Stormatics)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189143/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Making Postgres's Documentation Even Better&lt;/a&gt; – The practical elements of landing a docs fix in Postgres. &lt;cite&gt;Oli Sennhauser&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/189144/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Multi-Tenant BYOK Encryption in Postgres with &lt;code&gt;pgcrypto&lt;/code&gt;&lt;/a&gt; &lt;cite&gt;Tudor Golubenco&lt;/cite&gt;&lt;/p&gt;

&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
    &lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;Turn a live stream of machine data into real-time dashboards, all on Postgres. Free hands-on workshop, Sep 9. &lt;a href="https://postgresweekly.com/link/189146/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Save your spot&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;🚀 Triple your Postgres productivity. &lt;a href="https://postgresweekly.com/link/189147/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pgEdge AI DBA Workbench&lt;/a&gt;: AI monitoring &amp;amp; diagnostics for ANY Postgres v14+. &lt;a href="https://postgresweekly.com/link/189147/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Open source&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;HITS OF THE YEAR SO FAR:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As we're taking a week off, this is a natural moment to reflect and shine a spotlight on some of the best items of 2026 so far. We know not everyone has time to read &lt;em&gt;every&lt;/em&gt; issue, so there are likely to be some highlights you missed… :-)&lt;/p&gt;
&lt;p&gt;A small selection from the top items (by clicks):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189148/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Postgres is Enough&lt;/a&gt; – A useful directory of how Postgres can replace other systems including Redis, Elasticsearch and Kafka.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189149/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;&lt;code&gt;work_mem&lt;/code&gt;: It's a Trap!&lt;/a&gt; – An enjoyable tale of two experienced Postgres developers digging into just how a server with 2TB of RAM (and a &lt;code&gt;work_mem&lt;/code&gt; setting of just 2MB) got taken down by a badly written query.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189150/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;How Moving One Word Can Speed Up a Query 10–50x&lt;/a&gt; – One of those &lt;em&gt;"but… how?"&lt;/em&gt; moments where two logically equivalent queries led to a 32x difference in performance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189151/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Postgres Locks Explained&lt;/a&gt; – &lt;em&gt;"It's the resource I wish existed when I first started learning about locks"&lt;/em&gt;, said the author of this site focused on explaining the different types of lock used in Postgres in an easy-to-understand way.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/189152/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Life Altering Postgresql Patterns&lt;/a&gt; – Twelve bite-size tips and insights from using UUIDs as primary keys and table naming to the use of schemas and views. This one snuck in from &lt;a href="https://postgresweekly.com/link/189155/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;issue 630&lt;/a&gt;'s look at the best items of &lt;em&gt;2025&lt;/em&gt; but I think we can get away with running it just one… more… time…&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;Before I leave, I want to thank all of you who have sent in submissions recently. I've amassed quite a queue to go through, and I'm not exactly sure how long it'll take. Rest assured, though, I read every single one and will be including some in future issues :-)&lt;/p&gt;
&lt;p&gt;👋 We're now off for a week – see you again on August 26!&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
     
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://postgresweekly.com/open/661/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/661</guid>
    </item>
    <item>
      <title>What if Claude were your Postgres server?</title>
      <link>https://postgresweekly.com/issues/660</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​660 — August 5, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/188843/rss" style=" color: #0088bb;"&gt;Web Version&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;Lots of videos from this year's &lt;a href="https://postgresweekly.com/link/188823/rss" style=" color: #0088bb; font-weight: 600;"&gt;PGConf.dev&lt;/a&gt; are now on YouTube and I've rounded up some highlights at the end of the issue!&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Postgres Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/188825/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/tc2t4spvc1sswnkypuh3.jpg" width="640" style="    line-height: 1.0em;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/188825/rss" title="www.snowflake.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;&lt;code&gt;COUNT(DISTINCT)&lt;/code&gt; Too Slow? A Guide to Fast Approximations&lt;/a&gt;&lt;/span&gt; — A thorough, hands-on look at Postgres's powers of approximation and sampling, covering the pros, cons, and performance profiles of approaches including &lt;code&gt;TABLESAMPLE&lt;/code&gt;, &lt;code&gt;hll&lt;/code&gt;, and &lt;a href="https://postgresweekly.com/link/188842/rss" style=" color: #0088bb;"&gt;Apache DataSketches&lt;/a&gt;, on a 10 million row test table.&lt;/p&gt;
  &lt;p&gt;Elizabeth Garrett Christensen (Snowflake) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/188824/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1b6f2ba3.png" width="160" height="40" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/188824/rss" title="www.enterprisedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Model the Cost of an Oracle-To-Postgres Move&lt;/a&gt;&lt;/span&gt; — Weighing a move off Oracle? EDB's free calculator lets you model the cost by database tier and support level. Pressure-test the migration in a few minutes, before you commit to anything.&lt;/p&gt;
  &lt;p&gt;EDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/188826/rss" title="tapoueh.org" style=" color: #0088bb; font-size: 1.05em;"&gt;SQL Improvements in Postgres 11–18: A Personal Selection&lt;/a&gt;&lt;/span&gt; — Eight releases' worth of SQL features, picked by a longtime contributor and grouped by topic. The part on modelling band membership over time with &lt;code&gt;tstzmultirange&lt;/code&gt; and &lt;code&gt;range_agg()&lt;/code&gt; alone is worth a look, but there's much to enjoy.&lt;/p&gt;
  &lt;p&gt;Dimitri Fontaine &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/188827/rss" title="www.enterprisedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Unveiling a 13-Year-Old Postgres Bug in Cascading Replication&lt;/a&gt;&lt;/span&gt; — A guard added to streaming replication in Postgres 9.3 could lock a cascading standby out of streaming from its upstream after falling back to archive recovery. It's been fixed and will land in the next minor releases: 18.5, 17.11, and so on.&lt;/p&gt;
  &lt;p&gt;Gabriele Bartolini (EDB) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🤖&lt;/span&gt; &lt;a href="https://postgresweekly.com/link/188828/rss" title="byteofdev.com" style=" color: #0088bb; font-size: 1.05em;"&gt;'Turning Claude into Postgres So I Can Raise a Series A'&lt;/a&gt;&lt;/span&gt; — What happens when you stick an LLM behind the Postgres wire protocol and just let it deal with queries however it wants? This, apparently. Yes, it's a bit of fun, but he really did implement actual storage APIs for it to use! 😅&lt;/p&gt;
  &lt;p&gt;Jacob Jackson &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/188829/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Waiting for Postgres 19: SQL Property Graph Queries (SQL/PGQ)&lt;/a&gt;&lt;/span&gt; — If you've wondered what SQL property graph queries buy you over just using normal joins, you're not alone!&lt;/p&gt;
  &lt;p&gt;Hubert depesz Lubaczewski &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/188830/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Andy Pavlo Joins ClickHouse to Establish ClickHouse Labs&lt;/a&gt; – &lt;em&gt;"One larger question we will investigate is how DBMSs like ClickHouse and PostgreSQL fit into emerging AI and agentic technologies."&lt;/em&gt; &lt;cite&gt;Andy Pavlo (ClickHouse)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/188831/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Hybrid Search Patterns with Postgres and &lt;code&gt;pgvector&lt;/code&gt;&lt;/a&gt; – What iterative index scans bring to the party. &lt;cite&gt;Christopher Winslett&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/188832/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;TDE (Transparent Data Encryption) Performance in Postgres&lt;/a&gt; &lt;cite&gt;Zsolt Parragi (Percona)&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;📺 THE PGCONF.DEV VIDEOS:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/188823/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PGConf.dev 2026&lt;/a&gt; took place in Vancouver this May, and there are a whopping &lt;a href="https://postgresweekly.com/link/188833/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;47 videos in this YouTube playlist&lt;/a&gt; to enjoy, if you didn't attend. Some highlights:&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr style="line-height: 1.0em;"&gt;&lt;td style="font-size: 15px; line-height: 1.0em;"&gt;
  &lt;a href="https://postgresweekly.com/link/188834/rss" style=" color: #0088bb; line-height: 1.0em;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/oxow9lzcakncxbgh5sne.jpg" width="640" style="    line-height: 1.0em;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188834/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;30 Years of PostgreSQL Retrospective&lt;/a&gt; with Momjian, Wieck, Chen, Lockhart, Lane and Mikheev&lt;/strong&gt; – A panel &lt;em&gt;(above)&lt;/em&gt; of Postgres pioneers revisits technical decisions, defining moments, and lessons from over the years. Moderated by Melanie Plageman and Jonathan Katz.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188837/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;What's Missing in Postgres?&lt;/a&gt; with Bruce Momjian&lt;/strong&gt; – A look at 'missing' features including sharding, TDE, global indexes, and multi-master replication. &lt;a href="https://postgresweekly.com/link/188838/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;The slides&lt;/a&gt; are available, if you prefer.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188835/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Building the Next Generation of Postgres Contributors&lt;/a&gt; with Claire Giordano&lt;/strong&gt; – The &lt;a href="https://postgresweekly.com/link/188836/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Talking Postgres&lt;/a&gt; host reflects on what it takes to get more people involved with the project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188840/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Real-Time Postgres Patch Idea Evaluation&lt;/a&gt; with Freund, Linnakangas, Lane, and Haas&lt;/strong&gt; – Leading committers evaluate 'surprise patch ideas' live, with Robert Haas moderating.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188839/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Why is Postgres Terrible?&lt;/a&gt; with Christophe Pettus&lt;/strong&gt; – First admitting Postgres &lt;em&gt;isn't&lt;/em&gt; terrible, Christophe nonetheless examines real-world pain points, mitigations, and opportunities for improvement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://postgresweekly.com/link/188841/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Profiling Postgres Perils&lt;/a&gt; with Andres Freund&lt;/strong&gt; – A tour of misleading benchmarks, profiling traps, and counterintuitive performance results.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alternatively, &lt;a href="https://postgresweekly.com/link/188833/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;check out the playlist&lt;/a&gt; for anything that catches your eye – there's a lot more than just the above.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
     
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://postgresweekly.com/open/660/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 5 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/660</guid>
    </item>
  </channel>
</rss>
