<?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>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>
    <item>
      <title>Moving one word in a query unlocks a 32x speedup</title>
      <link>https://postgresweekly.com/issues/641</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;#​641 — March 25, 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/182713/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/182715/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/c8b5irmunnl1pv85xfak.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/182715/rss" title="neon.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;Ctrl-C in &lt;code&gt;psql&lt;/code&gt; Gives Me the Heebie-Jeebies&lt;/a&gt;&lt;/span&gt; — When you hit Ctrl-C in &lt;code&gt;psql&lt;/code&gt;, the cancel request is sent &lt;em&gt;unencrypted&lt;/em&gt; over a separate connection, even if your main session uses TLS. This deep dive explains how &lt;code&gt;CancelRequest&lt;/code&gt; works at the protocol level, a potential security risk, and why it operates in this way.&lt;/p&gt;
  &lt;p&gt;George MacKerron (Neon) &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/182716/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Digging into &lt;code&gt;pg_plan_advice&lt;/code&gt;: Query Plan 'Hints' for Postgres 19&lt;/a&gt;&lt;/span&gt; — We &lt;a href="https://postgresweekly.com/link/182717/rss" style=" color: #0088bb;"&gt;featured Robert Haas's explainer&lt;/a&gt; recently, but Hubert goes further with examples using his &lt;a href="https://postgresweekly.com/link/182718/rss" style=" color: #0088bb;"&gt;explain.depesz.com&lt;/a&gt; dataset, showing how this new module lets you capture, replay, and override key planner decisions.&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;a href="https://postgresweekly.com/link/182714/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b4ab77b6.png" width="150" height="150" 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/182714/rss" title="" style=" color: #0088bb; font-size: 1.05em;"&gt;Security Gateway for Postgres – Inspect Queries and Results&lt;/a&gt;&lt;/span&gt; — Protect your sensitive data with a second layer of defense in front of your PostgreSQL. Whitelist queries, inspect results, enforce SQL policies, and isolate your database network. Full bidirectional audit trail. No app changes required.&lt;/p&gt;
  &lt;p&gt;Signando GmbH &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;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Corey Quinn covers &lt;a href="https://postgresweekly.com/link/182719/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;AWS's recent ending of support for Postgres 13 on RDS&lt;/a&gt;. If you upgrade, take care: it can break &lt;a href="https://postgresweekly.com/link/182720/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;AWS Glue&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📘 &lt;em&gt;Supabase&lt;/em&gt; and &lt;em&gt;Manning Publications&lt;/em&gt; have published &lt;a href="https://postgresweekly.com/link/182721/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Mastering Postgres: Accelerate Your Weekend Projects and Seamlessly Scale to Millions&lt;/a&gt;, a free ebook &lt;em&gt;(though it's behind an email wall).&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;PlanetScale&lt;/em&gt; has introduced a &lt;a href="https://postgresweekly.com/link/182748/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Database Traffic Control&lt;/a&gt; feature to manage database workflows according to a budget on the fly. &lt;a href="https://postgresweekly.com/link/182749/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Here's how it works at a technical level.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;EVENTS IN APRIL:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🇩🇪 Looking for a Postgres event to attend in April? Head over to &lt;a href="https://postgresweekly.com/link/182722/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PostgreSQL Conference Germany 2026&lt;/a&gt; taking place in Essen on April 21-22.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇨🇳 Meanwhile in China, the &lt;a href="https://postgresweekly.com/link/182723/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;HOW2026 Postgres and IvorySQL Conference&lt;/a&gt; is taking place April 26-28 in Jinan.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇦🇲 Last but not least, registration for &lt;a href="https://postgresweekly.com/link/182724/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;PGDay Armenia&lt;/a&gt; opens this week. It takes place in Yerevan on April 30.&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/182725/rss" title="postgres.ai" style=" color: #0088bb; font-size: 1.05em;"&gt;How Moving One Word Can Speed Up a Query 10-50x&lt;/a&gt;&lt;/span&gt; — Two logically equivalent queries (one using &lt;code&gt;EXISTS ... AND NOT deleted&lt;/code&gt;, the other &lt;code&gt;NOT EXISTS ... AND deleted&lt;/code&gt;) lead to a 32x difference in performance. It comes down to a difference in how indexes are used, and is the sort of thing that could bite you one day too.&lt;/p&gt;
  &lt;p&gt;Boguk &amp;amp; Samokhvalov (PostgresAI) &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/182726/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Postgres 19's New, Built-In &lt;code&gt;REPACK&lt;/code&gt; Command&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;"&lt;code&gt;REPACK&lt;/code&gt; absorbs the functionality of &lt;code&gt;VACUUM FULL&lt;/code&gt; and &lt;code&gt;CLUSTER&lt;/code&gt; in a single command. Because this functionality is completely different from regular VACUUM, having it separate makes it easier for users to understand..."&lt;/em&gt; Hubert, who is very excited about this development, shows us how it works in practice.&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/182727/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Waiting For Postgres 19: Allow Table Exclusions in Publications&lt;/a&gt;&lt;/span&gt; — Logical replication publications using &lt;code&gt;FOR ALL TABLES&lt;/code&gt; will be able to &lt;em&gt;exclude specific tables&lt;/em&gt; with a new &lt;code&gt;EXCEPT TABLE&lt;/code&gt; syntax.&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/182728/rss" title="talkingpostgres.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Building Postgres Services on Azure with Charles Feddersen&lt;/a&gt;&lt;/span&gt; — Charles leads production management for &lt;a href="https://postgresweekly.com/link/182729/rss" style=" color: #0088bb;"&gt;Postgres on Azure&lt;/a&gt; at Microsoft and joined Claire Giordano to explain just &lt;em&gt;what&lt;/em&gt; Microsoft builds on top of Postgres, why, and how they respect and get involved with the open source community.&lt;/p&gt;
  &lt;p&gt;Talking Postgres &lt;span style="text-transform: uppercase; margin-left: 4px; padding-top: 1px; padding-right: 4px;  padding-left: 4px; font-size: 0.9em;             "&gt;podcast&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;a href="https://postgresweekly.com/link/182730/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;EXPLAIN's Other Superpowers&lt;/a&gt; — A look at commonly overlooked options like &lt;code&gt;BUFFERS&lt;/code&gt;, &lt;code&gt;MEMORY&lt;/code&gt; (new in PG18), &lt;code&gt;WAL&lt;/code&gt;, &lt;code&gt;SETTINGS&lt;/code&gt;, and &lt;code&gt;VERBOSE&lt;/code&gt;. &lt;cite&gt;Richard Yen&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/182731/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Debugging RDS Proxy Pinning: How a Hidden JIT Toggle Created Thousands of Pinned Connections&lt;/a&gt;  &lt;cite&gt;Richard Yen&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/182732/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;A Postgres 17 to 18 Upgrade Guide&lt;/a&gt; &lt;cite&gt;Ilya Kosmodemiansky (Data Egret)&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/182733/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;pgedge-postgres-mcp&lt;/a&gt;: an open source bridge between AI assistants &amp;amp; your data with prod-ready performance.&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/182734/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;BugBash&lt;/a&gt; 2026, April 23-24, Washington DC.&lt;/p&gt;
 
&lt;p&gt;Build &amp;amp; share your dev journey using Aiven's free tier to compete for $1,000. Share your project using #AivenFreeTier by March 31. &lt;a href="https://postgresweekly.com/link/182735/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Enter 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-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;TOOLS, 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/182736/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/vtjthtgfvu2k0dek91vn.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/182736/rss" title="" style=" color: #0088bb; font-size: 1.05em;"&gt;TigerFS: A Filesystem Backed by Postgres&lt;/a&gt;&lt;/span&gt; — A new project out of &lt;a href="https://postgresweekly.com/link/182737/rss" style=" color: #0088bb;"&gt;Tiger Data&lt;/a&gt; that  provides a FUSE/NFS filesystem where every file is a table row, writes use transactions, and multiple users can read/write concurrently with full ACID guarantees. Designed for agent coordination or any tool that works with files.&lt;/p&gt;
  &lt;p&gt;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;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/182738/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_jitter 0.2: Alternative JIT Backends for Postgres 14-18&lt;/a&gt;&lt;/span&gt; — Brings extra JIT backends to Postgres for faster compilation of queries (&lt;a href="https://postgresweekly.com/link/182739/rss" style=" color: #0088bb;"&gt;benchmarks here&lt;/a&gt;). v0.2 adds SIMD acceleration for string and JSON ops, acceleration of regexes and &lt;code&gt;LIKE&lt;/code&gt;, binary search for &lt;code&gt;CASE&lt;/code&gt;, Windows support, and more.&lt;/p&gt;
  &lt;p&gt;Vladimir Churyukin &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/182740/rss" title="kdwarn.net" style=" color: #0088bb; font-size: 1.05em;"&gt;Introducing &lt;code&gt;pgtui&lt;/code&gt;: A Postgres TUI Client&lt;/a&gt;&lt;/span&gt; — A new Rust and Ratatui-powered TUI for doing basic work on Postgres databases. The unique idea is you use your own editor for data entry and edits, with TOML as the interchange format.&lt;/p&gt;
  &lt;p&gt;Kris Warner &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/182741/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;SlowQL: A SQL Static Analyzer&lt;/a&gt;&lt;/span&gt; — An SQL static analyzer that identifies dangerous query patterns before they reach production, offering over 250 rules covering security, performance anti-patterns, and compliance. It works completely offline and includes dialect-aware analysis for Postgres.&lt;/p&gt;
  &lt;p&gt;makroumi &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/182742/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;TimescaleDB 2.26.0&lt;/a&gt; – The popular time-series database extension gets a few key performance improvements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 &lt;a href="https://postgresweekly.com/link/182743/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;safesession 0.1&lt;/a&gt; – Extension to lock a session as read-only. Once loaded, every transaction in the session is forced read-only. Targeted at AI agent and automated use cases.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182744/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;River 0.32&lt;/a&gt; – High-performance Postgres-powered job processing for Go.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182745/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Knex.js 3.2&lt;/a&gt; – Powerful SQL query builder for Node.js.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182746/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;squawk 2.44.0&lt;/a&gt; – Linter for Postgres migrations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182747/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_clickhouse 0.1.5&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/641/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/641</guid>
    </item>
    <item>
      <title>How one query ate 2 TB of RAM</title>
      <link>https://postgresweekly.com/issues/640</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;#​640 — March 18, 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/182378/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/182380/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/bg5bo8e2gztsetgvhrbo.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/182380/rss" title="mydbanotebook.org" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;&lt;code&gt;work_mem&lt;/code&gt;: It's a Trap!&lt;/a&gt;&lt;/span&gt; — With 2 terabytes of RAM and &lt;code&gt;work_mem&lt;/code&gt; set to 2MB, you wouldn’t expect your Postgres server to get taken down by the OOM (Out-Of-Memory) killer. Nonetheless, a badly written query &lt;em&gt;did&lt;/em&gt; cause that very situation, and two expert Postgres developers uncovered the surprising reason behind it.&lt;/p&gt;
  &lt;p&gt;Lætitia Avrot and Henrietta Dombrovskaya &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;💡 I enjoyed when Lætitia said &lt;em&gt;"twenty years of Postgres and I learn something new every week"&lt;/em&gt; in regards to &lt;a href="https://postgresweekly.com/link/182381/rss" style=" color: #0088bb; font-weight: 600;"&gt;&lt;code&gt;pg_log_backend_memory_contexts()&lt;/code&gt;&lt;/a&gt; – you can &lt;a href="https://postgresweekly.com/link/182382/rss" style=" color: #0088bb; font-weight: 600;"&gt;learn more about its use in tuning &lt;code&gt;work_mem&lt;/code&gt; 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-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/182379/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b812e1cc.png" width="130" height="130" 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/182379/rss" title="www.tigerdata.com" style=" color: #0088bb; font-size: 1.05em;"&gt;&lt;code&gt;SELECT COUNT(*)&lt;/code&gt; Shouldn't Take 8 Seconds&lt;/a&gt;&lt;/span&gt; — Tables grow. Queries slow down. Most teams add a second database. But Postgres can handle it. TimescaleDB adds hypertables, 95% compression, and continuous aggregates. Analytics on live data, same SQL you already write. &lt;a href="https://postgresweekly.com/link/182379/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;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🤖 Bruce Momjian says &lt;a href="https://postgresweekly.com/link/182383/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;the &lt;code&gt;COMMENT&lt;/code&gt; command could be particularly useful for MCP use cases&lt;/a&gt; by providing extra metadata for LLMs to use (or as a way to store their own).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;EDB's Floor Drees shares &lt;a href="https://postgresweekly.com/link/182384/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;a sneak preview of the topics coming up at PGConf.dev&lt;/a&gt; in Vancouver this May.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The PGCA (PostgreSQL Community Association) has &lt;a href="https://postgresweekly.com/link/182385/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;significantly updated its site&lt;/a&gt; and explains its role in defending Postgres's various trademarks and how you can help support it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pavel Luzanov &lt;a href="https://postgresweekly.com/link/182386/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;rounds up the latest CommitFest&lt;/a&gt; and a myriad of features set to land in Postgres 19 because of it.&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/182387/rss" title="netflixtechblog.com" style=" color: #0088bb; font-size: 1.05em;"&gt;How Netflix Automated Its RDS Postgres to Aurora Postgres Migration&lt;/a&gt;&lt;/span&gt; — Back in 2024, Netflix decided to migrate hundreds of Postgres clusters from RDS to Aurora, a challenging task with zero data loss and minimal downtime as must-haves. This is a detailed write-up of the process, and while it was an intra-AWS migration, most of the techniques have universal applicability.&lt;/p&gt;
  &lt;p&gt;Kannan, Akintayo, Bharadwaj, et al. (Netflix) &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/182388/rss" title="xata.io" style=" color: #0088bb; font-size: 1.05em;"&gt;We Skipped the OLAP Stack and Built Our Data Warehouse in Postgres&lt;/a&gt;&lt;/span&gt; — As a Postgres service, Xata wanted to &lt;a href="https://postgresweekly.com/link/182389/rss" style=" color: #0088bb;"&gt;eat its own dogfood&lt;/a&gt;, so here’s how they built their own data warehouse approach on top of vanilla Postgres.&lt;/p&gt;
  &lt;p&gt;Noémi Ványi (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;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://postgresweekly.com/link/182390/rss" title="www.depesz.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Waiting for Postgres 19: Add Non-Text Output Formats to &lt;code&gt;pg_dumpall&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — A deeper look at a welcome Postgres 19 change: &lt;em&gt;“&lt;code&gt;pg_dumpall&lt;/code&gt; can now produce output in custom, directory, or tar formats in addition to plain text"&lt;/em&gt;..&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-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/182391/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Postgres is the Gateway Drug&lt;/a&gt; — Three companies, $1.5B+ in Postgres-related acquisitions in eighteen months. What's going on? &lt;cite&gt;Vignesh Ravichandran&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;👾 No success theater. Just engineers sharing what actually broke and how they fixed it. &lt;a href="https://postgresweekly.com/link/182392/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;BugBash&lt;/a&gt; 2026, April 23-24 in Washington, DC.&lt;/p&gt;
 
&lt;p&gt;Build &amp;amp; share your dev journey using Aiven’s free tier to compete for $1,000. Share your project using #AivenFreeTier by March 31. &lt;a href="https://postgresweekly.com/link/182393/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Enter here&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;🤖 Love Claude? Leverage natural language database operations with the &lt;a href="https://postgresweekly.com/link/182394/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;MCP server for Postgres&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;/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/182395/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_turret: Stream Structured Postgres Logs to HTTP or Kafka Endpoints&lt;/a&gt;&lt;/span&gt; — Hooks into Postgres's &lt;code&gt;emit_log_hook&lt;/code&gt; to capture events and stream them as structured JSON to HTTP (or Kafka) endpoints in real time without any log file parsing.&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;a href="https://postgresweekly.com/link/182396/rss" title="github.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_stat_ch: Export Per-Query Postgres Telemetry to ClickHouse&lt;/a&gt;&lt;/span&gt; — The ClickHouse team built a Postgres extension that captures per-query execution telemetry and exports it to ClickHouse in real-time.&lt;/p&gt;
  &lt;p&gt;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/182397/rss" title="pgducklake.select" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_duckpipe: Real-Time CDC for Your Lakehouse&lt;/a&gt;&lt;/span&gt; — A new Postgres extension that continuously syncs regular heap tables into &lt;a href="https://postgresweekly.com/link/182398/rss" style=" color: #0088bb;"&gt;DuckLake&lt;/a&gt; columnar tables (a Parquet-backed format) via WAL-based CDC.&lt;/p&gt;
  &lt;p&gt;Relyt &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/182399/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Tansu 0.6&lt;/a&gt; – Drop-in replacement for Apache Kafka with Postgres, libSQL/SQLite, S3 or memory storage engines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182400/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostgreSQLCopyHelper 3.0&lt;/a&gt; – Bulk-inserting data with binary COPY for .NET.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/182401/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;pg_timetable 6.3&lt;/a&gt; – Advanced standalone job scheduler.&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/640/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/640</guid>
    </item>
    <item>
      <title>Robert Haas proposes pg_plan_advice for Postgres 19</title>
      <link>https://postgresweekly.com/issues/639</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;#​639 — March 11, 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/181916/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/181918/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/nluazltiueyof85sqwog.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/181918/rss" title="rhaas.blogspot.com" style=" color: #0088bb; font-size: 1.1em; line-height: 1.4em;"&gt;pg_plan_advice: Plan Stability and User Planner Control for Postgres?&lt;/a&gt;&lt;/span&gt; — Prolific Postgres contributor/committer Robert Haas proposes an &lt;em&gt;“ambitious”&lt;/em&gt; patch set for Postgres 19 to let admins control query planner behavior system-wide, without touching application code, by storing and automatically applying “plan advice” strings to specific queries.&lt;/p&gt;
  &lt;p&gt;Robert Haas &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/181919/rss" title="boringsql.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Production Query Plans &lt;em&gt;Without&lt;/em&gt; Production Data&lt;/a&gt;&lt;/span&gt; — 
Postgres 18 has two new functions that make optimizer statistics portable, meaning it's possible to export stats from a production database and inject them into a test database so you can reproduce production query plans locally &lt;em&gt;without&lt;/em&gt; the actual data!
&lt;/p&gt;
  &lt;p&gt;Radim Marek (boringSQL) &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/181920/rss" style=" color: #0088bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8d1b3557.png" width="143" 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/181920/rss" title="www.pgedge.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Enterprise Grade Postgres for Agentic AI, High Availability and More&lt;/a&gt;&lt;/span&gt; — pgEdge delivers open-source, 100% Postgres infrastructure for Agentic AI and enterprise apps that demand high availability, reliability, and data sovereignty. We make it easy to build, deploy and manage enterprise‑grade Postgres apps at scale.&lt;/p&gt;
  &lt;p&gt;pgEdge &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/181921/rss" title="argos-ci.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Migrating a Production Database from Heroku to AWS&lt;/a&gt;&lt;/span&gt; — A practical post covering the techniques behind migrating a 300GB database from Heroku to RDS. An interesting detail is the use of a temporary EC2 instance as a bridge, necessary because Heroku’s restrictions meant WAL archives were the only escape hatch, and RDS can’t receive physical WAL replication directly.&lt;/p&gt;
  &lt;p&gt;Greg Bergé (Argos) &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;Supabase has &lt;a href="https://postgresweekly.com/link/181922/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;added log drains&lt;/a&gt; as a feature for Pro users so you can send logs to your own logging backend.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bruce Momjian has &lt;a href="https://postgresweekly.com/link/181923/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;shared the slide deck&lt;/a&gt; for his new talk, &lt;em&gt;The Wonderful World of WAL&lt;/em&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;  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/181924/rss" title="circleback.ai" style=" color: #0088bb; font-size: 1.05em;"&gt;Fixing Connection Pooling on Serverless with PgDog&lt;/a&gt;&lt;/span&gt; — 
When Circleback's serverless workloads hit PgBouncer's single-threaded limitation, deploy-time traffic spikes caused connection issues. &lt;a href="https://postgresweekly.com/link/181925/rss" style=" color: #0088bb;"&gt;PgDog&lt;/a&gt;, a multi-threaded pooler, resolved their problem.
&lt;/p&gt;
  &lt;p&gt;Stephen van Son (Circleback) &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/181926/rss" title="kerkour.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Using Rust &amp;amp; Postgres for Everything&lt;/a&gt;&lt;/span&gt; — 
Practical patterns, distilled from years of production use, for building backend services with Rust and Postgres &lt;em&gt;"which may be particularly handy in a world where hardware prices are skyrocketing."&lt;/em&gt;
&lt;/p&gt;
  &lt;p&gt;Sylvain Kerkour &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/181927/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Just Use Postgres (Taken to the Extreme)&lt;/a&gt; – Think Heroku, except everything is the database. &lt;cite&gt;Andrew Nesbitt&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/181928/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;The MySQL Shadow&lt;/a&gt; – Bruce reflects on the long, slow decline of MySQL. &lt;cite&gt;Bruce Momjian&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/181929/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;Building a High-Performance Postgres Time Series Stack with Iceberg&lt;/a&gt;  &lt;cite&gt;Christensen and Slot (Snowflake)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://postgresweekly.com/link/181930/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;How ParadeDB Optimized Top K in Postgres&lt;/a&gt;  &lt;cite&gt;Ming Ying (ParadeDB)&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;TOOLS, 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/181931/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/zwxzi1qjry1ypl5tm60h.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/181931/rss" title="jnidzwetzki.github.io" style=" color: #0088bb; font-size: 1.05em;"&gt;pg_plan_alternatives: Tracing Query Plan Alternatives with eBPF&lt;/a&gt;&lt;/span&gt; — 
&lt;code&gt;EXPLAIN&lt;/code&gt; shows you the final chosen plan, not what was &lt;em&gt;considered&lt;/em&gt;. This tool uses eBPF to instrument Postgres' optimizer and trace alternative plans and cost estimates during the planning phase. The catch is it's Linux only and the Postgres binary needs debug symbols, but it's a fascinating read nonetheless.
&lt;/p&gt;
  &lt;p&gt;Jan Nidzwetzki &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/181932/rss" title="www.enterprisedb.com" style=" color: #0088bb; font-size: 1.05em;"&gt;Using &lt;code&gt;json_schema_validate&lt;/code&gt; to Validate the Shape of Your JSON&lt;/a&gt;&lt;/span&gt; — Andrew explores the topic of validating JSON at the database level and shares his new &lt;a href="https://postgresweekly.com/link/181933/rss" style=" color: #0088bb;"&gt;json_schema_validate&lt;/a&gt; extension that's designed to make it both easy and fast versus &lt;a href="https://postgresweekly.com/link/181934/rss" style=" color: #0088bb;"&gt;pg_jsonschema.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Andrew Dunstan (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-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/181935/rss" title="www.pgconsole.com" style=" color: #0088bb; font-size: 1.05em;"&gt;pgconsole: A Minimal Self-Hosted Postgres Editor for Teams&lt;/a&gt;&lt;/span&gt; — An attractive Web-based Postgres editor with built-in access control, audit logging, and AI assistance that you can quickly deploy via Docker. There’s &lt;a href="https://postgresweekly.com/link/181936/rss" style=" color: #0088bb;"&gt;a live demo here&lt;/a&gt; if you want to see how it looks. Note that it's &lt;em&gt;source available&lt;/em&gt;, rather than open source.&lt;/p&gt;
  &lt;p&gt;Bytebase &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/181937/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Marten 8.23&lt;/a&gt; – .NET library providing a document database and ACID-compliant event store atop Postgres.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/181938/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;Databasus 3.19&lt;/a&gt; – Self-hosted backup tool for Postgres, MySQL and MongoDB.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/181939/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;psql-wire 0.18&lt;/a&gt; – Pure Go implementation of the Postgres server wire protocol.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/181940/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PgBulkInsert 9.0&lt;/a&gt; – Java library for efficient bulk inserts using binary &lt;a href="https://postgresweekly.com/link/181941/rss" style=" color: #0088bb; font-weight: 500 !important;"&gt;COPY&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://postgresweekly.com/link/181942/rss" style=" color: #0088bb; font-weight: 500 !important; font-size: 1.08em; line-height: 1.5em;"&gt;PostgREST 14.6&lt;/a&gt; – Serves a fully RESTful API from a Postgres 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-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/639/rss" width="1" height="1" /&gt;</description>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://postgresweekly.com/issues/639</guid>
    </item>
  </channel>
</rss>
