Human impact

PostgreSQL 19 will ship without about ten of its new features

The code was written without AI. It was reviewed with it.

6 min read
PostgreSQL 19 will ship without about ten of its new features

A ranking Claude was asked to make

On August 25, Robert Haas posted a message titled "scary patch contest" to the PostgreSQL developers' mailing list. PostgreSQL is the open-source database born at Berkeley in the 1980s. Haas is a committer, one of the people allowed to merge code into the project. He asked Claude to name the version 19 features that look scariest, based on the number and nature of the bugs fixed since the feature freeze. He published the ranking, noting that he had trimmed a few particularly savage remarks from the machine.

Six candidates. The most-fixed, REPACK, a maintenance command, drew 28 fixes. Checksums that can be switched on while the database runs, about 25. Graph queries, 17. Haas doesn't take a side: he asks whether some of these should be pulled from the release before it ships.

The same day, Tom Lane, another committer, said he'd bet a dinner that if graph queries stay in 19, they'll carry bugs that can't be fixed before 20. His argument has nothing to do with AI. Patches still under discussion require touching the database's internal catalog.

About ten features sent back

On September 7, graph queries were pulled. Added to the SQL standard in 2023, they let you walk through relationships, such as a network of friends or a supply chain. The removal reverts 47 changes: the original feature and 46 follow-up tweaks. Peter Eisentraut signed it, and he is one of its two authors.

It isn't alone. In a post published on October 9, Eisentraut counts roughly 8 to 10 significant features pulled from 19, "depending on how you count," some of them very late in the beta. You'd normally expect maybe one per cycle. The project's public history shows, among others, GROUP BY ALL, a grouping shortcut (pulled July 17), merging and splitting partitions (August 27), and updates over a slice of a time period (September 15).

The schedule slipped too. On September 28, the release team announced the final version for October 29. On October 10, it pushed it back to November 19. That is a planned date, valid unless a problem is discovered before then, according to the announcement of the first release candidate, out on October 15.

Versions 16, 17 and 18 all shipped in September. Since 2016, no major version had come out after October 18.

The bar went up after the paper was handed in

Why so many removals? Eisentraut offers several explanations, probably combined and different for each feature. He stresses that these are only his opinions. The first is blunt: maybe the code just wasn't good enough.

The one the press picked up is another. Setting aside the big architectural flaws, he describes a long tail of fairly minor problems, edge cases that would once have been fixed bit by bit over five years. With LLM-assisted review, they all surface at once. You can end up, he writes, staring at a list of something like forty defect reports. Even if each needs only three lines of fix, each carries a fixed cost, and time runs out.

Hence his line: the quality bar was raised after the code was written. It's like changing the grading scale after the exams have been handed in. Most of the removed features, he says, were written a long time ago, when LLM review was nowhere near as useful.

Reviewed with AI, not written by it

The distinction matters. Eisentraut rules out "vibe coding," the code churned out in conversation with an AI, but carefully: for the most part, as far as he can tell, that isn't where this comes from, since the code was written well before that was possible. Daniel Gustafsson, another committer, was already saying so in late August: most of the big features in 19 were written, reviewed and tested before AI tools were available, or even remotely as good as they are today.

In Haas's thread, the others talk about impressions, not measurements. Nathan Bossart has a feeling that LLMs help find more. Richard Guo expected AI help to make features more stable by the freeze, and notes that it doesn't seem to have. Amit Kapila sees a long-term gain in stability, at the price of more fixes in the short term.

Eisentraut gives an example of something no human tests by hand: a query on a domain defined over a composite type, in a partition that was detached and reattached with a different column order, called from a trigger. Nobody can list all such cases, he writes. LLM-assisted fuzzing, which bombards the code with generated inputs, can find problems there very quickly.

The tool is no oracle, though. Paul Jungwirth, author of the period-based updates, says he asked Claude for a cross-testing plan. Claude wrote tests without finding a single new bug. Others have since found two.

The delay has a different official reason

That leaves the schedule slip, which The Register blames on AI reviewers. The official October 10 message gives another reason: the volume of fixes added to the versions already in service. The team wants to fold them into a second release candidate, on November 12, the day of the quarterly update, before the final release. The removals, for their part, were meant precisely to keep to the schedule: rather than delay to fix things, the community chose to hold the line, Eisentraut writes.

A thread does link the two, though. From April to August, many experienced developers were busy fixing security flaws, he says, which cut into the usual beta review. He calls that period the "Vulnpocalypse." In June, on the oss-security mailing list, the word described the wave of AI-found flaws people saw coming.

PostgreSQL's security page lists 44 flaws dated 2026, 28 of them fixed in August, against 7 in each of the three previous years. It does not say who found them.

What 19 keeps

The release keeps REPACK CONCURRENTLY, which reorganizes a table without locking it, and hints for steering the query execution plan. It will be very robust, Eisentraut promises, after all this extra scrutiny. Version 20, which he said a few months ago might have no new features at all, already inherits features that are 80% ready.

At Linux, one patch in ten now declares itself AI-assisted, mostly from regulars doing repairs. At PostgreSQL, the machine finds regulars' blind spots, and according to Eisentraut, the bottleneck becomes the time of the humans who have to fix them.

Eisentraut thinks the situation should sort itself out over the next few cycles. On one condition, which he sets himself: that LLM review stops improving at the current pace.

Was this article useful?

Topics covered:

ProductivityAnalysis

Frequently asked questions

How many features were pulled from PostgreSQL 19?
Roughly 8 to 10 significant features, depending on how you count, according to a post by Peter Eisentraut, a project committer, published on October 9. Some went very late in the beta. You'd normally expect maybe one per cycle. They include graph queries (pulled on September 7), GROUP BY ALL, merging and splitting partitions, and updates over a slice of a time period.
Why were these features pulled?
Peter Eisentraut offers several explanations, probably combined and different for each feature, and stresses they are only his opinions. The first: the code may simply not have been good enough. Another: with LLM-assisted review, a long tail of fairly minor problems surfaces all at once, and there isn't time to fix them. In his words, the quality bar was raised after the code was written.
Was PostgreSQL 19's code written by an AI?
For the most part, no, as far as Peter Eisentraut can tell: this isn't a vibe coding story, since the code was written long before that was possible. Daniel Gustafsson, another committer, said as much in late August: most of the big features in 19 were written, reviewed and tested before AI tools were available, or even remotely as good as they are today.
When will PostgreSQL 19 be released?
The planned date is November 19, 2026, unless a problem is discovered before then, according to the announcement of the first release candidate on October 15. On September 28, the release team was still saying October 29. A second release candidate is due on November 12.
Is the PostgreSQL 19 delay caused by AI?
That isn't the official reason. The Register blames the slip on AI reviewers, but the release team's October 10 message gives another one: the volume of fixes added to the versions already in service, which must go into a second release candidate before the final release. The feature removals, Peter Eisentraut writes, were meant precisely to keep to the schedule.
Alexandre Noto

Alexandre Noto

Co-founder & Tech Expert

Alexandre has been in tech for over 20 years. Entrepreneur, software architect and AI enthusiast, he translates complex concepts into accessible explanations. At Declic Media, he is the technical voice that makes AI understandable for everyone.

All articles by Alexandre →
The free AI newsletter