<?xml version="1.0" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>
<title>Bruce Momjian: Postgres Blog</title>
<description>Bruce Momjian: Postgres Blog</description>
<link>https://momjian.us/main/blogs/pgblog.html</link>
<language>en-us</language>
<pubDate>Wed, 15 Apr 2026 17:15:01 EDT</pubDate>
<lastBuildDate>Wed, 15 Apr 2026 17:15:01 EDT</lastBuildDate>
<managingEditor>bruce@momjian.us (Bruce Momjian)</managingEditor>
<webMaster>bruce@momjian.us (Bruce Momjian)</webMaster>


<atom:link href="https://momjian.us/main/rss/pgblog.xml" rel="self" type="application/rss+xml" />

<item>
<title>
Postgres 19 Release Notes
</title>
<pubDate>Wed, 15 Apr 2026 17:15:01 -0400</pubDate>
<description>
&lt;p&gt;I have just completed the first draft of the Postgres 19 &lt;a style=&quot;text-decoration: underline&quot; class=&quot;major&quot; href=&quot;https://www.postgresql.org/docs/devel/release-19.html&quot;&gt;release notes.&lt;/a&gt;  It includes little developer community feedback
and still needs more XML markup and links.  This year I have created a &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://wiki.postgresql.org/wiki/Creating_Major_Release_Notes&quot;&gt;wiki page&lt;/a&gt; explaining the process I
use.
&lt;/p&gt;
&lt;p&gt;The release note &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/writings/pgsql/missing.pdf#page=3&quot;&gt;feature count&lt;/a&gt; is 212, which includes a strong list of administrative and monitoring features.
&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.postgresql.org/developer/beta/&quot;&gt;Postgres 19 Beta 1&lt;/a&gt; should be released in a few months.  The final release is planned for September/October of this year. 
&lt;/p&gt;
</description>
<link>https://momjian.us/main/blogs/pgblog/2026.html#April_15_2026</link>
<guid>https://momjian.us/main/blogs/pgblog/2026.html#April_15_2026</guid>
<category>release notes</category>
</item>

<item>
<title>
COMMENT to the MCP Rescue
</title>
<pubDate>Mon, 16 Mar 2026 12:00:00 -0400</pubDate>
<description>
&lt;p&gt;The &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.postgresql.org/docs/current/sql-comment.html&quot;&gt;COMMENT&lt;/a&gt; command has been in Postgres for decades.  It allows text descriptions to be attached to almost any
database object.  During its long history, it was mostly seen as a nice-to-have addition to database schemas, allowing administrators and developers to more easily understand the
schema.  Tools like &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.pgadmin.org/docs/pgadmin4/9.11/table_dialog.html&quot;&gt;pgAdmin&lt;/a&gt; allow you to assign and view comments on database objects.
&lt;/p&gt;
&lt;p&gt;Now, in the AI era, there is something else that needs to understand database schemas &#8212; &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://thenewstack.io/why-the-model-context-protocol-won/&quot;&gt;MCP&lt;/a&gt; clients. 
Without database object comments, MCP clients can only use the database schemas, object names, and constraints.  With database comments, database users can supply valuable
information to allow MCP clients to more effectively match schema objects to user requests and potentially generate better SQL queries.  If database users don't want
to add such comments, it might be possible for generative AI to create appropriate comments, perhaps by analyzing data in the tables.
&lt;/p&gt;
&lt;a href=&quot;https://momjian.us/main/comment_item.html?/main/blogs/pgblog.html/March_16_2026&quot; data-disqus-url=&quot;https://momjian.us/main/comment_item.html?/main/blogs/pgblog.html/March_16_2026&quot;&gt;Post a Comment&lt;/a&gt;&lt;br /&gt;
</description>
<link>https://momjian.us/main/blogs/pgblog/2026.html#March_16_2026</link>
<guid>https://momjian.us/main/blogs/pgblog/2026.html#March_16_2026</guid>
<category>data modeling</category>
</item>

<item>
<title>
The MySQL Shadow
</title>
<pubDate>Wed, 11 Mar 2026 12:00:00 -0400</pubDate>
<description>
&lt;p&gt;For much of Postgres's &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.postgresql.org/docs/current/history.html&quot;&gt;history,&lt;/a&gt; it has lived in the shadow of other relational systems, and for a time even in
&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/blogs/pgblog/2013.html#March_5_2013&quot;&gt;the shadow&lt;/a&gt; of &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/writings/pgsql/central.pdf#page=21&quot;&gt;NoSQL&lt;/a&gt; systems.  Those shadows have
faded, but it is helpful to reflect on this outcome.
&lt;/p&gt;
&lt;p&gt;On the proprietary side, &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/writings/pgsql/forever.pdf#page=14&quot;&gt;most database products&lt;/a&gt; are now in maintenance mode.  The only database to be consistently
compared to Postgres was Oracle.  Long-term, Oracle was never going to be able to compete against an open source development team, just like Sun's Solaris wasn't able to
&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://arstechnica.com/information-technology/2009/04/oracle-acquires-sun-ars-explores-the-impact-on-open-source/&quot;&gt;compete&lt;/a&gt; against open source Linux.  Few people would choose
Oracle's database today, so it is effectively in legacy mode.  The Oracle shadow is clearly fading. In fact, almost all enterprise infrastructure software is open source today.
&lt;/p&gt;
&lt;p&gt;The MySQL shadow is more complex.  MySQL is not proprietary, since it is distributed as open source, so it had the potential to ride the open source wave into the enterprise, and it
clearly did from the mid-1990s to the mid-2000s.  However, something changed, and MySQL has been in steady
&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://analyticsindiamag.com/ai-trends/the-end-of-mysql-as-we-knew-it&quot;&gt;decline&lt;/a&gt; for decades.  Looking back, people want to ascribe a reason for the decline:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Sun &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.techpowerup.com/49858/sun-acquires-mysql-developer-of-the-worlds-most-popular-open-source-database&quot;&gt;buying&lt;/a&gt; MySQL AB
  &lt;/li&gt;&lt;li&gt;Oracle &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://en.wikipedia.org/wiki/Acquisition_of_Sun_Microsystems_by_Oracle_Corporation&quot;&gt;buying&lt;/a&gt; Sun
  &lt;/li&gt;&lt;li&gt;Poor &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.theregister.com/2025/09/11/oracle_slammed_for_mysql_job/&quot;&gt;stewardship&lt;/a&gt; of MySQL by Oracle, including recent layoffs
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://momjian.us/main/blogs/pgblog/2026.html#March_11_2026&quot;&gt;Continue Reading &amp;raquo;&lt;/a&gt;&lt;/p&gt;
</description>
<link>https://momjian.us/main/blogs/pgblog/2026.html#March_11_2026</link>
<guid>https://momjian.us/main/blogs/pgblog/2026.html#March_11_2026</guid>
<category>business</category>
</item>

<item>
<title>
New Presentation
</title>
<pubDate>Sat, 07 Mar 2026 12:00:00 -0400</pubDate>
<description>
&lt;p&gt;I just gave a new presentation at &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.socallinuxexpo.org/scale/23x&quot;&gt;SCALE&lt;/a&gt; titled &lt;a style=&quot;text-decoration: underline&quot; class=&quot;major&quot; href=&quot;https://momjian.us/main/presentations/administration.html#wal&quot;&gt;The Wonderful
World of WAL.&lt;/a&gt;  I am excited to have this &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/blogs/pgblog/2026.html#January_28_2026&quot;&gt;second&lt;/a&gt; new talk this year.  (I have
&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/presentations/ai.html#mcp&quot;&gt;one more&lt;/a&gt; queued up.)
&lt;/p&gt;
&lt;p&gt;I have always wanted to do a presentation about the write-ahead log (WAL) but I was worried there was not enough content for a full talk.  As more features were added to
Postgres that relied on the WAL, the talk became more feasible, and at 103 slides, maybe I waited too long.  &lt;img src=&quot;https://momjian.us/main/img/blog/wink.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;I had a full hour to give the talk at SCALE, and that was helpful.  I was able to answer many questions during the talk, and that was important &#8212; many of the later features
rely on earlier ones, e.g., point-in-time recovery (PITR) relies heavily on crash recovery, and if you don't understand how crash recovery works, you can't understand
PITR.  By taking questions at the end of each section, I could be sure everyone understood.  The questions showed that the audience of 46 understood the concepts because they
were asking about the same issues we dealt with in designing the features:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;How does server start know if crash recovery is needed?
  &lt;/li&gt;&lt;li&gt;Can dirty shared buffers be written to storage before the WAL for the transaction that dirtied them is written?
  &lt;/li&gt;&lt;li&gt;Can the WAL and heap/index storage get out of sync?
  &lt;/li&gt;&lt;li&gt;How is the needed WAL accurately retained for replica servers?
  &lt;/li&gt;&lt;li&gt;Can logical replicas be used as failover servers?
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://momjian.us/main/blogs/pgblog/2026.html#March_7_2026&quot;&gt;Continue Reading &amp;raquo;&lt;/a&gt;&lt;/p&gt;
</description>
<link>https://momjian.us/main/blogs/pgblog/2026.html#March_7_2026</link>
<guid>https://momjian.us/main/blogs/pgblog/2026.html#March_7_2026</guid>
<category>presentation</category>
</item>

<item>
<title>
New Presentation
</title>
<pubDate>Wed, 28 Jan 2026 12:00:00 -0400</pubDate>
<description>
&lt;p&gt;I just gave a new presentation at &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://p2d2.cz/en/&quot;&gt;Prague PostgreSQL Developer Day&lt;/a&gt; titled &lt;a style=&quot;text-decoration: underline&quot; class=&quot;major&quot; href=&quot;https://momjian.us/main/presentations/pending.html#missing&quot;&gt;What's Missing in
Postgres?&lt;/a&gt;  It's an unusual talk because it explains the missing features of Postgres, and why.  One thing I learned in writing the talk is that the majority of our missing features
are performance-related, rather than functionality-related.  I took many questions:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;some pointed out that extensions supply much of this missing functionality
  &lt;/li&gt;&lt;li&gt;some supported the lack of features because the features are either unnecessary or harmful
  &lt;/li&gt;&lt;li&gt;some features are in-progress (&lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://momjian.us/main/writings/pgsql/missing.pdf#page=31&quot;&gt;slide 31&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Thanks to &lt;a style=&quot;text-decoration: underline dotted&quot; class=&quot;txt2html&quot; href=&quot;https://www.linkedin.com/in/melanieplageman&quot;&gt;Melanie Plageman&lt;/a&gt; for the idea of this talk.
&lt;/p&gt;
&lt;a href=&quot;https://momjian.us/main/comment_item.html?/main/blogs/pgblog.html/January_28_2026&quot; data-disqus-url=&quot;https://momjian.us/main/comment_item.html?/main/blogs/pgblog.html/January_28_2026&quot;&gt;Post a Comment&lt;/a&gt;&lt;br /&gt;
</description>
<link>https://momjian.us/main/blogs/pgblog/2026.html#January_28_2026</link>
<guid>https://momjian.us/main/blogs/pgblog/2026.html#January_28_2026</guid>
<category>presentation</category>
</item>


</channel>

</rss>
