<?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>A Kafka-like pure SQL queue for Postgres</title>
      <link>https://postgresweekly.com/issues/645</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​645 — April 22, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184103/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/184105/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/obmbrc1smyax7fktvtuk.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184105/rss" title="www.postgresql.org" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;The First Draft of the PostgreSQL 19 Release Notes&lt;/a&gt;&lt;/span&gt; — Bruce has &lt;a href="https://postgresweekly.com/link/184106/rss" style=" color: #0088bb;"&gt;just completed&lt;/a&gt; the first, bulletpoint-heavy draft of the release notes for Postgres 19, &lt;a href="https://postgresweekly.com/link/184107/rss" style=" color: #0088bb;"&gt;targeted to land&lt;/a&gt; this September with a beta &lt;a href="https://postgresweekly.com/link/184108/rss" style=" color: #0088bb;"&gt;expected&lt;/a&gt; in the coming months.&lt;/p&gt;
  &lt;p&gt;Bruce Momjian &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡If you fancy seeing the process behind the notes, Bruce &lt;a href="https://postgresweekly.com/link/184109/rss" style=" color: #0088bb; font-weight: 600;"&gt;made this wiki page.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/184104/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/5b61f081.png" width="110" 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/184104/rss" title="www.tigerdata.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Your Hot Table Hit a Billion Rows. Now What?&lt;/a&gt;&lt;/span&gt; — TimescaleDB chunks growing tables automatically, compresses cold data up to 95%, and pre-computes rollups with continuous aggregates. All in native Postgres. No new query language, no second database, no migration. &lt;a href="https://postgresweekly.com/link/184104/rss" style=" color: #0088bb;"&gt;Start building for free&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184117/rss" title="xata.io" style=" color: #0088bb; font-size: 1.05em;"&gt;Introducing Xata OSS: A Postgres Platform with Branching, Now Apache 2.0&lt;/a&gt;&lt;/span&gt; — 
&lt;a href="https://postgresweekly.com/link/184118/rss" style=" color: #0088bb;"&gt;Xata&lt;/a&gt; has made the core technology of its Postgres platform open source. You get copy-on-write branching at the storage layer that clones databases in seconds, scale-to-zero for inactive branches, while still having standard Postgres underneath.
&lt;/p&gt;
  &lt;p&gt;Tudor Golubenco / Xata &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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;🤖 A developer is &lt;a href="https://postgresweekly.com/link/184112/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;attempting to 'rebuild Postgres in Rust'&lt;/a&gt; using AI agents because... why not? A third of Postgres's tests pass so far, and there's &lt;a href="https://postgresweekly.com/link/184113/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;a live online demo here.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cloudflare teases a development, landing next month, in its partnership with PlanetScale: &lt;a href="https://postgresweekly.com/link/184114/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;the ability to deploy PlanetScale-hosted databases directly from the Cloudflare dashboard&lt;/a&gt; for use with &lt;em&gt;Workers&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇺🇸 &lt;a href="https://postgresweekly.com/link/184115/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PGDay Boston 2026&lt;/a&gt; takes place this June 9 in Boston with Michael Stonebraker, the original leader of the Postgres project, giving a keynote address.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇨🇭 &lt;a href="https://postgresweekly.com/link/184116/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Swiss PGDay 2026&lt;/a&gt; is this June 25-26 in Rapperswil, Switzerland.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184110/rss" title="mydbanotebook.org" style=" color: #0088bb; font-size: 1.05em;"&gt;Investigating the Linux 7.0 Postgres Throughput Regression&lt;/a&gt;&lt;/span&gt; — We recently featured an article about &lt;a href="https://postgresweekly.com/link/184111/rss" style=" color: #0088bb;"&gt;how Linux 7.0 was affecting Postgres performance&lt;/a&gt; &lt;em&gt;on certain setups.&lt;/em&gt; Lætitia digs into what the actual issue is, who’s affected (very few of us!) and what to keep in mind when you upgrade.&lt;/p&gt;
  &lt;p&gt;Lætitia Avrot &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184119/rss" title="connorhallman.com" style=" color: #0088bb; font-size: 1.05em;"&gt;How CTIDs Gave Me a 30x Speedup on Processing 200 Million Rows&lt;/a&gt;&lt;/span&gt; — A look at where index scans can fail at scale on large static tables, how the internal &lt;code&gt;ctid&lt;/code&gt; (physical row address) enables true sequential I/O, and a full implementation with visualizations of the access pattern difference.&lt;/p&gt;
  &lt;p&gt;Connor Hallman &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184120/rss" title="www.datadoghq.com" style=" color: #0088bb; font-size: 1.05em;"&gt;When Upserts Don't Update But Still Write&lt;/a&gt;&lt;/span&gt; — How Datadog traced doubled disk writes and quadrupled WAL syncs to a surprising behavior: &lt;code&gt;ON CONFLICT DO UPDATE&lt;/code&gt; locks the conflicting row even when the &lt;code&gt;WHERE&lt;/code&gt; condition means nothing is actually updated.&lt;/p&gt;
  &lt;p&gt;Anthonin Bonnefoy (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/184121/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Using Non-ACID Storage as a Workaround for a Lack of Autonomous Transactions&lt;/a&gt;  &lt;cite&gt;Pavel Stehule&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/184122/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Waiting for Postgres 19: Online Enabling and Disabling of Data Checksums&lt;/a&gt;  &lt;cite&gt;Hubert Lubaczewski&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/184123/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Finding Invisible Use-After-Free Bugs in the Postgres Planner&lt;/a&gt;  &lt;cite&gt;Andrei Lepikhov&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🚀 Triple your Postgres productivity. &lt;a href="https://postgresweekly.com/link/184124/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/184124/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Open source&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184125/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Collect real-time search data at scale&lt;/a&gt; with an API built for analysts, engineers, and AI teams.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/184126/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/ellyzyxvxf7hgck3wsqi.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184126/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;PgQue: A Pure SQL + PL/pgSQL Zero-Bloat Postgres Queue&lt;/a&gt;&lt;/span&gt; — From a long-time Postgres contributor comes a modern version of Skype’s &lt;a href="https://postgresweekly.com/link/184127/rss" style=" color: #0088bb;"&gt;PgQ&lt;/a&gt; in &lt;em&gt;‘one SQL file + &lt;code&gt;pg_cron&lt;/code&gt;’&lt;/em&gt; form. Architecturally closer to Kafka than a typical job queue with zero event-table bloat, native fan-out, and no &lt;code&gt;SKIP LOCKED&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Nikolay Samokhvalov &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 PgQue attracted &lt;a href="https://postgresweekly.com/link/184128/rss" style=" color: #0088bb; font-weight: 600;"&gt;some discussion on Hacker News&lt;/a&gt; where Nikolay answered a variety of questions.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184129/rss" title="cloudberry.apache.org" style=" color: #0088bb; font-size: 1.05em;"&gt;Apache Cloudberry 2.1: A Postgres-Based MPP Database&lt;/a&gt;&lt;/span&gt; — An MPP (Massively Parallel Processing) database splits data and query execution across many nodes; a big win for analytics workloads. Cloudberry carries on work started with &lt;a href="https://postgresweekly.com/link/184130/rss" style=" color: #0088bb;"&gt;Greenplum&lt;/a&gt;, but on a more modern Postgres kernel. &lt;a href="https://postgresweekly.com/link/184131/rss" style=" color: #0088bb;"&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Apache Software Foundation &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/184132/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_roast: An Extension That Audits and 'Roasts' Your Database&lt;/a&gt;&lt;/span&gt; — Built upon principles from the book &lt;a href="https://postgresweekly.com/link/184133/rss" style=" color: #0088bb;"&gt;PostgreSQL Mistakes and How to Avoid Them&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Samir Ketema &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://postgresweekly.com/link/184134/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg-index-health-sql 0.40&lt;/a&gt; – SQL queries for analyzing &amp;amp; maintaining indexes and tables. &lt;a href="https://postgresweekly.com/link/184135/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pg-index-health 0.40&lt;/a&gt; is the same, but as a Java library.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184136/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;credcheck 4.7&lt;/a&gt; – Extension that validates credentials during user creation or renaming and password changes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184137/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgwire 0.39&lt;/a&gt; – The Postgres wire protocol as a Rust library for writing Postgres-compatible servers and clients.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184138/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostgREST 14.10&lt;/a&gt; – Serve up a fully RESTful API from a Postgres database.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184139/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;River 0.35&lt;/a&gt; – Robust job processing system for Go using Postgres.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/184140/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PgDoorman 3.5&lt;/a&gt; – Multithreaded connection pooler built in Rust.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/645/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/645</guid>
    </item>
    <item>
      <title>A 6502 CPU emulator entirely in Postgres</title>
      <link>https://postgresweekly.com/issues/644</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​644 — April 15, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183787/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/183789/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/rprmypqe54vw7gcclpxq.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183789/rss" title="planetscale.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;Keeping a Postgres Queue Healthy&lt;/a&gt;&lt;/span&gt; — Running a job queue in Postgres works well (&lt;a href="https://postgresweekly.com/link/183790/rss" style=" color: #0088bb;"&gt;“just use Postgres!”&lt;/a&gt;) until long-running analytics queries silently prevent autovacuum from keeping up. Here’s what’s actually going on and what you can do about it, along with PlanetScale’s own in-house solution.&lt;/p&gt;
  &lt;p&gt;Simeon Griggs (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/183788/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/83704dc0.png" width="140" height="140" 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/183788/rss" title="www.tigerdata.com" style=" color: #0088bb; font-size: 1.05em;"&gt;You Extend Postgres for Everything Else. Why Not Analytics?&lt;/a&gt;&lt;/span&gt; — TimescaleDB adds hypertables, 95% compression, and continuous aggregates so Postgres handles analytics on live data. No second database, no pipeline, no new query language. Same SQL you already write. &lt;a href="https://postgresweekly.com/link/183788/rss" style=" color: #0088bb;"&gt;Start building for free&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183791/rss" title="gist.github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Making Materialized View Refreshes O(delta) Instead of O(total)&lt;/a&gt;&lt;/span&gt; — Every time you refresh a &lt;a href="https://postgresweekly.com/link/183792/rss" style=" color: #0088bb;"&gt;materialized view&lt;/a&gt;, it recomputes the entire dataset, even if only a single row changed. A patch, &lt;a href="https://postgresweekly.com/link/183793/rss" style=" color: #0088bb;"&gt;being discussed&lt;/a&gt; on &lt;code&gt;pgsql-hackers&lt;/code&gt;, adds a &lt;code&gt;WHERE&lt;/code&gt; clause to &lt;code&gt;REFRESH MATERIALIZED VIEW&lt;/code&gt; so refreshes only touch rows that changed. This writeup includes trigger patterns for both immediate and deferred maintenance, useful even without the patch landing in core.&lt;/p&gt;
  &lt;p&gt;Adam Brusselback &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 &lt;a href="https://postgresweekly.com/link/183794/rss" style=" color: #0088bb; font-weight: 600;"&gt;pg_ivm&lt;/a&gt; offers similar functionality as an extension, though with tighter restrictions on supported SQL syntax.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183795/rss" title="richyen.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Understanding Postgres Wait Events&lt;/a&gt;&lt;/span&gt; — When a query slows down or a database becomes CPU bound, Postgres already knows why. The &lt;code&gt;pg_stat_activity&lt;/code&gt; view exposes &lt;em&gt;wait events&lt;/em&gt; that show exactly what each session is blocked on at any given moment.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183796/rss" title="www.pgedge.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Checkpoints, Write Storms, and You&lt;/a&gt;&lt;/span&gt; — When Postgres is forced to checkpoint early (typically when it hits &lt;code&gt;max_wal_size&lt;/code&gt;), it drops its usual throttling and flushes aggressively, hammering disk I/O. The default 1GB WAL limit is a common trigger.&lt;/p&gt;
  &lt;p&gt;Shaun Thomas (pgEdge) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 In a follow-up, Jeremy Schneider notes checkpoints aren’t the only source of write storms: &lt;a href="https://postgresweekly.com/link/183797/rss" style=" color: #0088bb; font-weight: 600;"&gt;setting &lt;code&gt;autovacuum_vacuum_cost_delay&lt;/code&gt; to zero can trigger them too.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183798/rss" title="oseifert.ch" style=" color: #0088bb; font-size: 1.05em;"&gt;'I Imported the Linux Kernel into Postgres'&lt;/a&gt;&lt;/span&gt; — A developer imported the full Linux kernel history into Postgres by way of &lt;a href="https://postgresweekly.com/link/183799/rss" style=" color: #0088bb;"&gt;pgit&lt;/a&gt;. A good stress test of &lt;code&gt;pgit&lt;/code&gt; &lt;em&gt;and&lt;/em&gt; now you can &lt;code&gt;SELECT&lt;/code&gt; your way through years of Linux kernel history.&lt;/p&gt;
  &lt;p&gt;Oliver Seifert &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183800/rss" title="stormatics.tech" style=" color: #0088bb; font-size: 1.05em;"&gt;The 1 GB Limit That Breaks &lt;code&gt;pg_prewarm&lt;/code&gt; at Scale&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://postgresweekly.com/link/183801/rss" style=" color: #0088bb;"&gt;pg_prewarm&lt;/a&gt; can reload buffer caches after a restart to maintain performance. &lt;strong&gt;But on Postgres 16 versions &amp;lt;16.10&lt;/strong&gt;, if &lt;code&gt;shared_buffers&lt;/code&gt; is over ~429GB, pg_prewarm fails and makes the server unreachable. Here's why, and what to do about it.&lt;/p&gt;
  &lt;p&gt;Warda Bibi &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183802/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Less Obvious Things to Know About Indexes&lt;/a&gt; – Quick insights into composite index ordering, function calls on columns, and indexing rows you’ll never query. &lt;cite&gt;Jon Charter&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183803/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Rotating Postgres Credentials in Production Without Downtime&lt;/a&gt;  &lt;cite&gt;ElyDB Team&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183804/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Waiting for Postgres 19: New &lt;code&gt;pg_get_*_ddl()&lt;/code&gt; Functions&lt;/a&gt;  &lt;cite&gt;Hubert Lubaczewski&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183805/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;pg_6502&lt;/code&gt;: A 6502 CPU Emulator Running Entirely Inside Postgres&lt;/a&gt;&lt;/span&gt; — Every CPU register, every flag, and 64KB of memory are Postgres tables; &lt;a href="https://postgresweekly.com/link/183806/rss" style=" color: #0088bb;"&gt;every 6502 opcode is a stored procedure.&lt;/a&gt; A fun hack showcasing how far you can push PL/pgSQL.&lt;/p&gt;
  &lt;p&gt;lasect &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183807/rss" title="supabase.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Supabase Transfers the &lt;em&gt;Stripe Sync Engine&lt;/em&gt; to Stripe&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://postgresweekly.com/link/183808/rss" style=" color: #0088bb;"&gt;Stripe Sync Engine&lt;/a&gt;, originally created by Supabase as a way to synchronize a Stripe account with a Postgres database, is now an official Stripe project.&lt;/p&gt;
  &lt;p&gt;Supabase &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183809/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Skunk 1.0: A Pure Functional Postgres Driver for Scala&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://postgresweekly.com/link/183810/rss" style=" color: #0088bb;"&gt;Skunk&lt;/a&gt; is a pure functional, non-blocking Postgres driver for Scala that now supports Scala 2.13 and 3 across JVM, JS, and &lt;a href="https://postgresweekly.com/link/183811/rss" style=" color: #0088bb;"&gt;Scala Native 0.5.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Michael Pilquist (Typelevel) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://postgresweekly.com/link/183812/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_wait_tracer 0.8&lt;/a&gt; – eBPF-based wait event tracer that watches Postgres at the kernel level instead of polling &lt;code&gt;pg_stat_activity&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183813/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgcollection 2.0&lt;/a&gt; – Associative array data types for PL/pgSQL, modeled after Oracle PL/SQL's equivalent feature. (&lt;a href="https://postgresweekly.com/link/183814/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;GitHub repo.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 &lt;a href="https://postgresweekly.com/link/183815/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;column_encrypt 4.0&lt;/a&gt; – Transparent column-level encryption using AES, with custom encrypted data types.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183816/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_datasentinel 1.0&lt;/a&gt; – Extension that enriches &lt;code&gt;pg_stat_activity&lt;/code&gt; and adds observability views.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;a href="https://postgresweekly.com/link/183823/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostGIS Patch Releases&lt;/a&gt; – Bug fix and security releases for PostGIS 3.2-3.6.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🟧 &lt;a href="https://postgresweekly.com/link/183817/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;hn-fdw&lt;/a&gt; – Foreign data wrapper for querying an archive of &lt;a href="https://postgresweekly.com/link/183818/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Hacker News&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183819/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgAdmin 4 v9.14&lt;/a&gt; – Popular GUI admin tool for Postgres.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183820/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;CloudNativePG 1.29.0&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183821/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_clickhouse 0.2&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/644/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/644</guid>
    </item>
    <item>
      <title>ClickHouse's new benchmark for Postgres services</title>
      <link>https://postgresweekly.com/issues/643</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​643 — April 8, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183417/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/183419/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/fwcg92rcerfavcxjv2kt.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183419/rss" title="www.phoronix.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;AWS Engineer Reports Postgres Performance Halved by Linux 7.0&lt;/a&gt;&lt;/span&gt; — When running Postgres 17 on an ARM-based instance running the Linux 7.0 kernel (currently in RC), an engineer noticed performance fell by 49%, leading to a &lt;a href="https://postgresweekly.com/link/183420/rss" style=" color: #0088bb;"&gt;kernel patch&lt;/a&gt; to restore Linux’s default preemption mode. The kernel developer behind the initial change, however, says Postgres needs to modernize its locking instead – a big ask given Linux 7.0 is due to land later this month.&lt;/p&gt;
  &lt;p&gt;Michael Larabel (Phoronix) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 It's not yet definitively known if this affects x86-64 too, but &lt;a href="https://postgresweekly.com/link/183421/rss" style=" color: #0088bb; font-weight: 600;"&gt;initial experiments suggest it does not.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/183418/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/3478fc3d.png" width="142" 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/183418/rss" title="posetteconf.com" style=" color: #0088bb; font-size: 1.05em;"&gt;You Don’t Have To Attend All 44 Postgres Talks&lt;/a&gt;&lt;/span&gt; — POSETTE: An Event for Postgres 2026 is a free &amp;amp; virtual developer event on 16-18 Jun. All 44 talks stream live &amp;amp; will be available later. Join live to take part in discussions with speakers &amp;amp; attendees. &lt;a href="https://postgresweekly.com/link/183418/rss" style=" color: #0088bb;"&gt;Check out the schedule and mark your calendar.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Microsoft | AMD &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183422/rss" title="clickhouse.com" style=" color: #0088bb; font-size: 1.05em;"&gt;PostgresBench: A Reproducible Benchmark for Postgres Services&lt;/a&gt;&lt;/span&gt; — ClickHouse wanted to stress test and compare their managed Postgres service against the competition, so they built this benchmark system. As is common with benchmarking posts, ClickHouse tops the results, but the system is &lt;a href="https://postgresweekly.com/link/183423/rss" style=" color: #0088bb;"&gt;open source&lt;/a&gt;, so the methodology can be easily reproduced and scrutinized.&lt;/p&gt;
  &lt;p&gt;Lionel Palacin (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183424/rss" title="mydbanotebook.org" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;pg_column_size()&lt;/code&gt;: What You See Isn't What You Get&lt;/a&gt;&lt;/span&gt; — TOAST introduces ambiguity, and Lætitia wants to patch Postgres’s docs to be more accurate about what &lt;code&gt;pg_column_size&lt;/code&gt; &lt;em&gt;really&lt;/em&gt; shows.&lt;/p&gt;
  &lt;p&gt;Lætitia Avrot &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183425/rss" title="leanpub.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Lift the Elephant: A Book about Scaling Beyond the Query&lt;/a&gt;&lt;/span&gt; — A 160-page PDF book that provides a mental map of what performance levers exist in Postgres, why they matter, and how to approach tuning methodically. Good for intermediate users who want a real-world playbook. It's a paid product, but can be obtained free if needed.&lt;/p&gt;
  &lt;p&gt;Alex Yarotsky &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 We have no financial interest in this book; the author sent us a copy for review.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183426/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Waiting for Postgres 19: Add &lt;code&gt;UPDATE&lt;/code&gt;/&lt;code&gt;DELETE&lt;/code&gt; .. &lt;code&gt;FOR PORTION OF&lt;/code&gt;&lt;/a&gt; – An extension to &lt;code&gt;UPDATE&lt;/code&gt;/&lt;code&gt;DELETE&lt;/code&gt; to do a ‘temporal update/delete’ based on a range or multirange column. &lt;cite&gt;Hubert Lubaczewski&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183427/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Schemas in Postgres and Oracle: What's the Difference?&lt;/a&gt; – Similar on the surface, very different in the details. &lt;cite&gt;Laurenz Albe&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183428/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Do You Need to Tune Postgres Vacuum?&lt;/a&gt; – An evergreen primer to checking for bloat and tuning Postgres’ autovacuum process. &lt;cite&gt;Christensen and Jones (Snowflake)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183429/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;What is a Collation, and Why is My Data Corrupt?&lt;/a&gt;  &lt;cite&gt;Shaun Thomas&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183430/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Collect real-time search data at scale&lt;/a&gt; with an API built for analysts, engineers, and AI teams.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/183431/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/dm11sns3iit7dgr6smi8.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183431/rss" title="boringsql.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Don't Let AI Touch Your Production Database: Use &lt;code&gt;dryrun&lt;/code&gt; Instead&lt;/a&gt;&lt;/span&gt; — For many tasks, it helps if agents can &lt;em&gt;see information&lt;/em&gt; about your database, but they don’t really need a full connection. &lt;a href="https://postgresweekly.com/link/183432/rss" style=" color: #0088bb;"&gt;dryrun&lt;/a&gt; is Radim’s new “offline-first” Postgres MCP server that lets AI agents access what they need to help you, but using a JSON snapshot rather than a connection to your live database.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183433/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pgmicro: An In-Process Postgres Reimplementation&lt;/a&gt;&lt;/span&gt; — 
From the founder of &lt;a href="https://postgresweekly.com/link/183434/rss" style=" color: #0088bb;"&gt;Turso&lt;/a&gt;, &lt;em&gt;pgmicro&lt;/em&gt; parses SQL using &lt;code&gt;libpg_query&lt;/code&gt; and compiles it directly to SQLite bytecode. Ships as an npm package and CLI with a wire protocol server option for using existing Postgres clients.
&lt;/p&gt;
  &lt;p&gt;Glauber Costa (Turso) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183435/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;rpg&lt;/code&gt;: Modern Postgres Terminal Written in Rust&lt;/a&gt;&lt;/span&gt; — A psql-compatible terminal written in Rust with built-in DBA diagnostics and AI assistant. Single binary, no dependencies, cross-platform.&lt;/p&gt;
  &lt;p&gt;Nik Samokhvalov &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183436/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_clickhouse v0.1.10&lt;/a&gt; – Query &lt;a href="https://postgresweekly.com/link/183437/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;ClickHouse&lt;/a&gt; databases from Postgres. Now with more compatibility improvements, like mappings for &lt;code&gt;JSON&lt;/code&gt;/&lt;code&gt;JSONB&lt;/code&gt;/&lt;code&gt;TEXT&lt;/code&gt; operators as well as numerous window functions, including &lt;code&gt;RANK&lt;/code&gt;, &lt;code&gt;PERCENT_RANK&lt;/code&gt;, and &lt;code&gt;ROW_NUMBER&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183438/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_trickle v0.16&lt;/a&gt; – Declarative, automatically-refreshing materialized views. &lt;a href="https://postgresweekly.com/link/183439/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pg_ivm&lt;/a&gt; is another good solution in this space.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183440/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgfmt 2.0&lt;/a&gt; – Rust-powered Postgres-flavored SQL formatter, supporting several SQL style guides (but &lt;a href="https://postgresweekly.com/link/183441/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;here's the default&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183442/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;libpqxx 8.0 / 8.0.1&lt;/a&gt; – The official C++ client API for Postgres.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/643/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 8 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/643</guid>
    </item>
    <item>
      <title>pg_textsearch 1.0 brings production-ready BM25 to Postgres</title>
      <link>https://postgresweekly.com/issues/642</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​642 — April 1, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183103/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.0em; "&gt;
  &lt;a href="https://postgresweekly.com/link/183105/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/lyjxqudhjidan4ihgpuy.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183105/rss" title="www.tigerdata.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;pg_textsearch 1.0: A BM25 Search Engine Using Postgres Pages&lt;/a&gt;&lt;/span&gt; — Real &lt;a href="https://postgresweekly.com/link/183106/rss" style=" color: #0088bb;"&gt;BM25 scoring&lt;/a&gt; built in C and running on top of Postgres’s own storage layer, so you can create indexes, write queries, and get relevance-ranked results out of the box. v1.0 takes things from preview to production with parallel index builds and disk-based segments (rather than memory only, as in pre-1.0). &lt;a href="https://postgresweekly.com/link/183107/rss" style=" color: #0088bb;"&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Todd J. Green (Tiger 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 Other BM25-based options are available, including &lt;a href="https://postgresweekly.com/link/183108/rss" style=" color: #0088bb; font-weight: 600;"&gt;ParadeDB&lt;/a&gt; (which uses &lt;a href="https://postgresweekly.com/link/183109/rss" style=" color: #0088bb; font-weight: 600;"&gt;Tantivy&lt;/a&gt; behind the scenes) and &lt;a href="https://postgresweekly.com/link/183110/rss" style=" color: #0088bb; font-weight: 600;"&gt;VectorChord-BM25.&lt;/a&gt; A head-to-head comparison and benchmark of them would be great to see.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://postgresweekly.com/link/183104/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b0fdf751.png" width="110" 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/183104/rss" title="www.tigerdata.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Most Teams Hit a Wall With Analytics on Postgres&lt;/a&gt;&lt;/span&gt; — Postgres can scale analytics. It just needs help. Instead of a second database, add TimescaleDB: hypertables, 95% compression, and continuous aggregates. No pipelines, no sync lag, no drift. Analytics on live data. Start building for free.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183111/rss" title="planetscale.com" style=" color: #0088bb; font-size: 1.05em;"&gt;High Memory Usage in Postgres is Good, Actually&lt;/a&gt;&lt;/span&gt; — High memory &lt;em&gt;usage&lt;/em&gt; in Postgres is often a sign the system is simply doing its job, keeping frequently accessed data close at hand. The thing to worry about is &lt;em&gt;memory pressure&lt;/em&gt;, and Simeon explains how to tell the two apart.&lt;/p&gt;
  &lt;p&gt;Simeon Griggs (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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;🇦🇹 Microsoft's Cornelia Biacsics tells the story of &lt;a href="https://postgresweekly.com/link/183112/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;how she organized a Postgres meetup in Vienna&lt;/a&gt; last week. Might be inspirational if you want to do the same in your city.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Amazon Aurora PostgreSQL is &lt;a href="https://postgresweekly.com/link/183113/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;now available on the AWS Free Tier.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;♟️ Can you &lt;a href="https://postgresweekly.com/link/183114/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;use SQL to render a chess board&lt;/a&gt; and move pieces around it? A neat interactive exploration of what's involved.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183115/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Postgres 19 Adding Built-in JSON Export via &lt;code&gt;COPY&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — In the next version of Postgres, &lt;code&gt;COPY ... TO ... WITH JSON&lt;/code&gt; will let you export query results or table data directly as a stream of JSON objects.&lt;/p&gt;
  &lt;p&gt;Hubert 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183116/rss" title="mydbanotebook.org" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;pg_service.conf&lt;/code&gt;: The Spell Your Team Forgot to Learn&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://postgresweekly.com/link/183117/rss" style=" color: #0088bb;"&gt;&lt;code&gt;pg_service.conf&lt;/code&gt;&lt;/a&gt; is a bit like &lt;code&gt;ssh&lt;/code&gt;’s &lt;code&gt;config&lt;/code&gt; file in that it lets you bundle together connection parameters into a single service name, so you can do things like &lt;code&gt;psql service=prod&lt;/code&gt;. A further cute trick is to have different files for each environment and switch between them while keeping your logical names the same.&lt;/p&gt;
  &lt;p&gt;Lætitia Avrot &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183118/rss" title="vondra.me" style=" color: #0088bb; font-size: 1.05em;"&gt;The Real Cost of Random I/O&lt;/a&gt;&lt;/span&gt; — Is the &lt;code&gt;random_page_cost&lt;/code&gt; default of 4.0 still right after 25 years? Vondra runs controlled experiments with direct I/O on flash storage and finds the answer is more nuanced than &lt;em&gt;“just set it to 1.0.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Tomas Vondra &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183119/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;The Hidden Behavior of &lt;code&gt;plan_cache_mode&lt;/code&gt;&lt;/a&gt; – Did you know the query planner can change the execution plan for a prepared statement after several executions? &lt;cite&gt;Richard Yen&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/183120/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;A Survey of Database Schema Migration Approaches in 2026&lt;/a&gt;  &lt;cite&gt;Jeremy Schneider&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;▶️ &lt;a href="https://postgresweekly.com/link/183121/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;How to Implement the Outbox Pattern in Go and Postgres&lt;/a&gt;  &lt;cite&gt;Package Main&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;Spot N+1 queries before your users do. AppSignal auto-monitors Postgres performance with real-time alerts. &lt;a href="https://postgresweekly.com/link/183122/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Try Free.&lt;/a&gt;&lt;/p&gt;
 
&lt;p&gt;👾 A conference for engineers who did the big rewrite - and lived to tell the story. &lt;a href="https://postgresweekly.com/link/183123/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;BugBash&lt;/a&gt; 2026, April 23-24, Washington DC.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183124/rss" title="pgmetrics.io" style=" color: #0088bb; font-size: 1.05em;"&gt;pgmetrics: Collect and Report Stats from Running Postgres Servers&lt;/a&gt;&lt;/span&gt; — A Go app (so no dependencies) that collects over 350 different metrics and produces &lt;a href="https://postgresweekly.com/link/183125/rss" style=" color: #0088bb;"&gt;reports like this one.&lt;/a&gt; As well as being useful at a glance, the format is perfect for LLMs to analyze too.&lt;/p&gt;
  &lt;p&gt;RapidLoop &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183126/rss" title="boringsql.com" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;pg_regresql&lt;/code&gt;: Truly Portable Postgres Statistics&lt;/a&gt;&lt;/span&gt; — An extension that forces the planner to use &lt;code&gt;pg_class&lt;/code&gt; statistics instead of reading actual file sizes, so that injected production statistics survive intact in a small dev/test database.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183127/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Multigres Operator: A Kubernetes Operator for Multigres&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://postgresweekly.com/link/183128/rss" style=" color: #0088bb;"&gt;Multigres&lt;/a&gt; is a Vitess-inspired horizontally-scalable/sharded Postgres architecture and this operator brings it into Kubernetes. Note that &lt;em&gt;“It is not production-ready as of today, but we’re moving fast - expect it to be ready in a few months.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Supabase &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183129/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_ivm 1.14&lt;/a&gt; – Makes materialized views up-to-date using incremental changes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183130/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pgschema 1.8&lt;/a&gt; – Terraform-style declarative schema migrations for Postgres.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/183131/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg-boss 12.15.0&lt;/a&gt; – Postgres-powered job queue for Node.js apps.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/642/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 1 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/642</guid>
    </item>
  </channel>
</rss>
