Postgres 19 is late because so many more bugs are being found now (rhaas.blogspot.com)

426 points by soheilpro 2 days ago

BatteryMountain 2 hours ago

This is a good thing. Repaying technical debt is always a great thing.

On our own 1.5M loc system, we've found and fixed thousands of bugs, security holes and circular dependencies in the last year. Code quality has increased, test coverage increased. We've also recently set our compiler to treat warnings as errors, and to be as strict as possible. It is absolutely amazing to see the gaps being filled, it would've been an impossible task for human devs and IDE's would've made it very uncomfortable. We've also ironed out all the bugs and failure modes in our infrastructure automation / monitoring. Our next project is to eliminate all 3rd party dependencies, and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

So when I read this about postgres, I was very happy that they found and pursued this side quest. They can make the codebase bullet proof.

Gigachad 12 minutes ago

Avoiding 3rd party libraries seems like a false sense of security. You’ll stop seeing CVEs on the scanner reports, but the bugs are still there, just in your own code that is less well audited than public libraries.

m4rtink 15 minutes ago

Good thing if you can afford the vulnerability detection run.

I could imagine scenarios where only well off developers and companies could afford that.

Then if you don't have the money, you are out of luck and risk having vulnerabilities in your code.

And it takes just one adversary to pay the bot & the bot will happily find an exploit for them in your code.

This worry this could lead to a serious power imbalance & furthe damage the free software community...

Cthulhu_ 10 minutes ago

I don't think it'll be that bad:

1. The cost of running AI is dropping down to "free" - there's open weight models, open source tools, and guides on running your own if the long list of suppliers isn't good enough for your use cases.

2. Vulnerabilities have always been a risk; AI is not a panacea. The pre-AI best practices still apply. Furthermore, a huge percentage of vulnerabilities are in 3rd party tools and systems, which are systematically being scanned and fixed and/or exploited, then fixed.

You mention "the free software community" in your last sentence though - this implies the code in question is open source, so it's able to receive plenty of improvements from anyone with access to these tools.

elcritch an hour ago

Now this is how companies should be using AI. Not as an excuse to fire half the devs. Less bugs, less failures, better experience for everyone.

BatteryMountain an hour ago

We haven't fired a single person yet due to AI. We just save everyone time, make input more accurate, make our accountants better, manage our technicians and jobcards better and so on. We also made our system bullet proof to the point that we only had one weekend failure in the last 24 months, and it wasn't our fault (a third party dependency did a large deployment on a friday night). Our system is now deeply "boring" and its awesome.

elcritch 20 minutes ago

adamddev1 41 minutes ago

Perhaps the ultimate use case would be to use AI to scan, debug and find issues etc, but never to generate new code. Still have humans writing and understanding everything, keeping things as clean and concise as possible.

benterix 12 minutes ago

msdz 2 hours ago

> rebuild our frontends completely using zero frameworks, not touching npm ever again after that

Genuine question, because I don’t know: Wouldn’t it suffice to vendor your current packages and “only” stick to maintenance from there on out, instead of rewriting it all?

This should still achieve the goal of not needing to touch npm, but presumably with less effort/tokens, right? Or is it just that you would expect the result of that process to be less clear and maintainable than a full rewrite?

BatteryMountain 2 hours ago

Actually, I have started with it already but is paused, but the approach is to rebuild it from scratch in parallel to our current legacy system and move our staff over to the new completed screens in batches (we have close to 1000 views in our system, 150 background jobs, with about 15 main categories (think organisational sub-divisions)). So as long as we go slow and steady (even with AI) it will work out fine, I expect it will be done in less than 6 months. One month if we rush but we don't want to rush it, as we are moving some things over from MSSQL to Postgres, so slow and steady is the way.

jiggawatts 35 minutes ago

chronogram 2 hours ago

Because they are large codebases with their own technical debt. You're not doing a full rewrite, but just make what you need for you own codebase.

fauigerzigerk an hour ago

msdz an hour ago

cypressious 30 minutes ago

> IDE's would've made it very uncomfortable

Would you mind elaborating?

BatteryMountain 5 minutes ago

When you change a single setting in the IDE to make something more strict and you have 1M+ lines of code, you will get 30K items to fix, via red/yellow/blue squiggles in the IDE. Most of those can be simple refactorings, but the performance & UI of the IDE makes it incredibly unwieldy and it will sometimes fight you back, sometime crash internal processes which leave refactorings half baked and so. Now imagine you change 50 such settings, to make the compiler force you to write better code. Changing 200K+ lines of code yourself is a nightmare (and to prove it still does the same thing afterwards). Instead, claude systematically approaches whole classes of errors and convert them to cleaner variants (either using our custom skills or it writing new scripts to do it). I consider myself an advanced user of IDE's, know how to do bulk refactoring and renames and so on (esp with JetBrains tools), and I would say it would be a near impossible task to do as a human. Then there are other developers - so you flip a setting and now 5 other people's IDE's are forcing them to work a specific way which will make you unpopular very quickly and revert the changes. So, since most of us no longer use IDE's as our main tool to build/diagnose, we can more easily flip compiler settings without destroying someone else's week. Hope that makes sense.

Oh it also helps to split refactoring work into three buckets: business logic changes, performance changes (same output as before but faster) and cosmetic changes (rename files/folders/classes, breaking large files up, add logging/comments, domain layering etc). We tend to focus on performance and cosmetic changes for bulk refactors and leave logic changes to more dedicated sessions as to avoid changing what the system do (our domain is fairly complex and we cannot afford breakages). We also managed to port ALL of our code to dotnet 10 lts and have clean boundaries between projects (we have a mono-repo with about 50 projects in it), so we can wholesale upgrade dependencies without a sweat.

bullpen 2 hours ago

Didn’t you guys have to ship new products? How a business can afford so many backlog tickets being implemented? I understand fixing bugs can also mean improving the product but still - (almost) the whole world has this balance between new features and acceptable-ish number of bugs

BatteryMountain 2 hours ago

We are multiple developers, each having 10+ main claude agents running different sessions/terminal tabs. I have 10 copies of our codebase on my laptop, each with their own purpose and claude session and history. The other devs have different approaches but we all get similar output. And then we also built an agent framework that runs within our system that has access to our code (at most 60min behind master branch), our infra and our databases, so it can diagnose issues with excellent precision and prove it to us where to find code/data issues.

za3faran an hour ago

bocytron 2 hours ago

Can you tell us how did you achieve that kind of work, briefly? I struggle to figure out how such massive bug fixing campaigns or even large scale software engineering are done with ai not taking weird decisions...

eurekin an hour ago

I personally started using AI with a very rudimentary "memory" system, and for first weeks corrected it ad nauseam, until, in the small domain I was responsible for, it started doing work end to end fully autonomously. Takes a lot of time and effort to bootstrap, but once steered well enough, it just clicks and less and less is needed to check manually

BatteryMountain an hour ago

BatteryMountain an hour ago

Myself specifically, I have a /code folder without about 10 copies of our codebase, each running their own claude sessions & git branch. Then, I have 10 terminal branches. I spend a ton of time planning out & specing the problem with claude, to be as specific as possible and be as constrained as possible so it cannot go on side-quests. I use Opus 5.5 on High effort. That's just on my laptop with what I can mentally cope with day to day. Then we have some other automatic ai goodies running within our custom agent framework that runs within our platform that also helps. Then for apps, I basically plug in multiple phones into my laptop with usb (and emulators if I really need to), and claude can fully drive the ui and testing on the phones via adb as an example. Even on linux/fedora/kde it can drive UI apps a and take screenshots and fix things properly etc. It can ingest all logs & debug chains, so it absolutely flies through its task.

Before we started this journey (about a year ago), we spent a ton of time cleaning up our codebase, splitting large files (10K+ lines) into files that are no more than 2K lines, things like that. Then we let claude scan our important files and summarize them, add comments for future claude sessions. So we've let it built up tribal knowledge per file and the reasons for things to exist. We tell it all about our operating environment, the country and legal framework etc, so every little piece helps it stay honest and on track.

So to start, do something simple like: Scan the files in this folder for database code and check for queries that loads the entire result set into memory and/or queries that loads all columns. Suggest which queries we can filter better or reduce columns being transferred. Once done, also check real db row counts, compare them with the queries in these files and check if they might benefit from an index or partitioning/sharding. Also check for queries that loads data but their results are not used. Don't make changes yet, just do a deep investigation and report back. Feel free to spin up muliple agents to batch the scans.

edit: it goes without saying you need a language with strict typing and a good compiler (we use dotnet). Doing this on python/javascript would be a nightmare.

cpursley 2 hours ago

The JS frameworks exist for a reason, recreating them seems a little excessive. Why not skip JS and go to a Rust wasm framework or Phoenix LiveView if the goal is to get away from JS/node/npm?

BatteryMountain an hour ago

Our legacy system runs mvc view with bootstrap 3 and some jquery. It's not a SPA, so no framework to replace. But we still have to mess around with npm sometimes.

cpursley 34 minutes ago

CharlesW 9 hours ago

> This year is going to be different. PostgreSQL 19 most likely won’t be released until November… […] So, what happened? The short answer is that LLMs happened. […] There’s a huge amount of code, and that code contains a huge number of bugs. […] What’s different now is that it’s become vastly easier to find those bugs.

This seems…good?

That it might disrupt the project's "traditional" release cadence a bit doesn't seem terribly bad in light of the alternative, which is shipping another major update with bugs which have apparently haunted the codebase for some time.

Gigachad 7 hours ago

At work we have put a full halt on feature work because the number of security related tasks has become staggering and urgent.

We will hopefully get over this wave and be able to move forward with much more secure software, but it's crazy right now.

dawnerd 4 hours ago

We’ve also been blowing a lot of retainer hours just patching sites instead of building new features. It sucks. Ultimately going to cost clients more.

quantummagic an hour ago

remus an hour ago

max_k 2 hours ago

Same here. I got access to Mythos two months ago, it confronted me with decades of nasty bugs I wrote. This has been stressing me out a lot, caused sleep deprivation (the bugs follow me in my sleep, yes, really). All other progress is halted, I've been squashing bugs day and night. I see a light at the end of the tunnel.

Bottom line: it's a good thing. My software will be better after that. Even if it's currently not good for my ego (and my health). But I'm glad for all the tools that help me improve quality.

And sure, I can just ask LLMs to fix the bugs, which works well half of the time, and produces bad slop in the other half. This is where human expertise and judgement is still necessary to avoid letting our code bases drift into LLM spaghetti hell.

bjoli 2 hours ago

Mashimo an hour ago

x3n0ph3n3 4 hours ago

How did you get product management to agree to that? Ours said "I could fix all of that in 2 days with Claude." They are still not fixed. Granted, our PMs suck.

Gigachad 3 hours ago

jmangiameli 3 hours ago

jimbokun 7 hours ago

Interesting that this could result in net negative software productivity world wide in terms of features right now.

LLMs finding unpatched vulnerabilities faster than they can be reasonably patched, bringing all other software development to a halt.

reissbaker 6 hours ago

hibikir 5 hours ago

taberiand 6 hours ago

tstrimple 4 hours ago

michaellee8 7 hours ago

ako 3 hours ago

It’s amazing how much slop humans have produced that now needs to be fixed by AI…

jacquesm 3 hours ago

shalmanese 4 hours ago

> This seems…good?

You would think so but medicine has faced this paradox since the development of modern testing technology.

You would naively think more testing is always better. More sophisticated practitioners then talk about Type I vs Type II errors and the problem of false positives.

But even if you were able to come up with tests that had 100% accuracy, there are times when you don't want to run that test on someone. The key distinction is that people only ever die of one thing and having a tumor that doesn't kill them is often better than risking the surgery to remove the tumor.

Similarly, there are some bugs you don't want to find since the harm from the people it affects is smaller than the opportunity cost of fixing it. Ignorance of the bug is better than knowing about it and having to make an affirmative decision not to fix it.

vikramkr 4 hours ago

I don't see how that's a relevant comparison. These are software bugs. Once you find them you fix them. You can't predict the harm from a small bug when AI can chain complex exploits and when your software is used in mission critical applications as a data store. There's no paradox here, bugs are bad and you want to fix them all.

shalmanese 3 hours ago

shigawire 4 hours ago

MrJohz 2 hours ago

That's a flawed analogy though.

Firstly, the cost of fixing a bug once you know it exists is usually minimal compared to the cost of discovering that bug. This is the inverse of medicine, where the cost of testing (at least in terms of health outcomes for the patient) is typically minimal compared to the cost of treatment.

Secondly, if you have an asymptomatic illness, this does not typically make you more vulnerable (hence why it's asymptomatic). Like you say, you typically only die of one thing, so if you know the patient won't die of a particular diagnosis because something else is more likely to kill them, then it might not be worth making that diagnosis. But for software, you can be simultaneously vulnerable to lots of things at once, and any of these vulnerabilities can be the one to "kill" you. Some vulnerabilities may be easier to find and exploit (or do more damage) but in principle any active vulnerability can be exploited.

Thirdly, having multiple vulnerabilities makes software more vulnerable overall, because those vulnerabilities can potentially be chained together to create more serious exploits than each vulnerability would have represented on its own. To a certain extent this can be true in medicine as well, but generally it isn't.

Fourthly, we can't cure death (yet?) but we can cure all the vulnerabilities that we've found so far. There is no known upper bound on the lifespan of a piece of software, and we know that older code tends to have fewer bugs in that newer code, presumably because those bugs have been fixed over time. This is different from health issues, where a given condition may be chronic or terminal and therefore at a certain point there's nothing you can do to fix it.

Finally, ultimately in healthcare it's your body, and your decision was to what you do with it (assuming you can find a doctor willing to do what you want). If you have a condition and you want it cured, even if it is completely benign and will have no impact on your life whatsoever, then you can do that. (Again, assuming you have the resources and the condition is curable). But a software vulnerability does not affect you as the developer of the software, it instead affects your users/clients/customers. Therefore there are different dynamics in play. If I sell you a tool and I know it could be vulnerable, but I don't try and find out what those vulnerabilities are, then you're ultimately the one on the hook when all your data gets deleted or leaked.

shalmanese 2 hours ago

eviks 3 hours ago

> some bugs you don't want to find

The key thing you forgot, which makes this approach non-sensible, is the omniscience, without which you have no clue whether your posture towards a new bug-finding tool is good or not, since you don't know whether it will mostly find those bugs that are not worth fixing and the time wasted on fixing them is detrimental.

Similarly, how is ignorance better than informed decision when ignorance also includes missing critical security bugs?

shalmanese 2 hours ago

andy_ppp 4 hours ago

Doing surgery on a code base is dramatically better than surgery on a person, the analogy breaks down pretty quickly I’d say…

womble2 3 hours ago

baq 4 hours ago

Medicine is fuzzy, software is mostly maths. You can prove your software has no bugs and you increasingly should be proving that. The hard part is knowing if what you prove is what the software is doing.

fmbb 3 hours ago

shalmanese 3 hours ago

namelosw 5 hours ago

This is great for the same reason open source software is great.

We want software that remains robust in the long term, so that even when people are able to inspect the source code, it's still solid, rather than hiding the source code and hoping people don't find holes everywhere.

userbinator 4 hours ago

I think it will be annoying in the short term, but the cleanup this causes will be a good thing in the long term (and of course LLMs can also help with fixing bugs, even without source code.)

Smalltalker-80 2 hours ago

Indeed, we did a whole release consisting only of an AI security scan of the codebase plus fixes.

leoooodias 8 hours ago

Exactly. There's so much negativity, it sometimes borders Luddism.

"We found a bunch of ways to make our product safer and better. We need more time to ship a higher quality product."

PICKET SIGNS

UpsideDownRide 6 hours ago

Luddites were actually pretty reasonable when you dig into it. Maybe shouldn't be using it as an insult?

foxglacier 6 hours ago

Marha01 4 hours ago

cornell532 6 hours ago

jcattle 43 minutes ago

RTFA

> In the end, I don’t think that the delay in shipping PostgreSQL 19 is particularly concerning. It is not a long delay in the grand scheme of things, and it emerges directly from the project’s concern for quality.

alexpadula 6 hours ago

Luddism, did not expect to ever hear that word with Postgres development :>

throwaway27448 7 hours ago

We could really use a lot more luddites tbh. Doesn't seem very applicable here tho.

giancarlostoro 7 hours ago

jimbokun 7 hours ago

Did you honestly need a /sarcasm tag in the article?

The article also concludes that overall, yes, finding more bugs is a good thing. Basically saying it’s the LLMs “fault” that the quality is improving, alongside a slight delay to the release.

noosphr 7 hours ago

They found a more efficient way to play Whac-A-Mole with bugs, they didn't find a way to reduce bugs.

drfloyd51 6 hours ago

roosterIllusi0n 7 hours ago

This is good. This is how I would expect llms to affect a codebase. Nothing sucks more than having a coworker put out a code review but your codex immediately finds problems. Run llm/self reviews against your code before you have other humans review it. It is common courtesy.

27183 8 hours ago

Yes, exactly. The only question I have is whether the delay is attributable to high-quality bug reports or the burden of triaging low-quality ones. It's not completely clear which situation they're experiencing.

jeremyjh 8 hours ago

It’s pretty clear there are a lot of valid reports based on the large increase in backport commits cited.

jmspring 8 hours ago

InsidiousWombat 8 hours ago

I'd imagine just as every other project, both.

micromacrofoot 8 hours ago

likely both

0c3ca83 7 hours ago

27183 8 hours ago

tibbar 9 hours ago

I did a little AI-assisted bug-hunting in Postgres this summer in between jobs, and the haul was staggering. Multiple serialization anomalies (eg [0] [1] [2]), foreign key integrity issues ([3] [4]), planner correctness bugs such as [5]. Various CVE-worthy vulnerabilities. An unfixable timezone bug [6]. The list got so long that I had to triage what I even had time to report, and settled for a dozen or two out of hundreds of candidates. Now imagine the entire world doing this.

[0] Write skew observed under serializable isolation: https://www.postgresql.org/message-id/flat/CA+COZaBo+ZpKgMvx...

[1] Serializable anomaly: duplicate primary keys: https://www.postgresql.org/message-id/flat/CA+COZaBOiiRPmEfX...

[2] SERIALIZABLE can commit write skew after SSI summarization: https://www.postgresql.org/message-id/flat/CA+COZaCtK=UQbeQw...

[3] Fix temporal foreign key validation of pre-existing rows https://www.postgresql.org/message-id/flat/CA+COZaChq_ukm2o7...

[4] Lost lock during toasting allows FK violation https://www.postgresql.org/message-id/flat/CA+COZaC-2-GQabq+...

[5] Partition pruning can incorrectly exclude a RANGE default partition https://www.postgresql.org/message-id/flat/CA+COZaDXrfTaBjLE...

[6] timestamp vs. timestamptz comparisons inconsistently ordered under DST : https://www.postgresql.org/message-id/flat/c22286ad6268347c6...

tibbar 6 hours ago

By the way, Robert and the other maintainers are incredible to interact with. There are so many reports to triage and bugs to fix, but they're unflaggingly polite and quite generous with their time. I don't know of another community like it.

gurjeet 4 hours ago

I've been engaged with Postgres community for over 20 years now, and this has been my experience, too, throughout that time. Off and on I have interacted with a few other large projects, and nowhere (except at CodeBlocks) have I found such a welcoming and responsive community. The CodeBlocks IDE project has been one exception where I felt welcomed; but my interaction there was quite limited, and spanned over just a few days, so I can't extrapolate too much from that.

BTW, the Postgres community is also quite protective of their culture, so I expect this welcoming nature of the community to persist for a while.

anoojb 8 hours ago

i assume the magnitude of impact for a bunch of [now] glaring holes in popular software is unknowable.

question is, how long do you think this persists before there's only a long tail of minor exploits left?

codebje 8 hours ago

I am pretty sure we have always been able to add holes faster than we can find them and fill them, and that this has not changed with the advent of faster hole finding tools that are also faster hole producing tools.

Cthulhu_ 4 minutes ago

ncruces 40 minutes ago

cloudbonsai 3 hours ago

jimbokun 7 hours ago

rogerrogerr 8 hours ago

> unfixable timezone bug

Very curious about the details and why it’s unfixable. Is it just because timezones are such a mess it’s logically impossible to satisfy every constraint?

tibbar 8 hours ago

I will add more example links in the top-level comment, but here is the thread for that bug. [0]. tl;dr timestamp vs timestamptz comparisons aren't consistently ordered in a pathological edge case, which means that index scans can return the wrong answer. There's no way to fix it without either redefining the operators in a surprising way or disabling index scans in this case.

[0] https://www.postgresql.org/message-id/flat/c22286ad6268347c6...

paulryanrogers 7 hours ago

SkiFire13 2 hours ago

drej 18 minutes ago

I think it's a bit more nuanced than that https://vondra.me/posts/are-we-reverting-patches-because-of-...

hopa 9 hours ago

I feel like AI is amazing for read only “search” tasks (query this, look for bugs, find vulnerabilities) but it’s not quite as good for “write” tasks like “add this feature”. Search tasks are easily verified, code changes are much harder to verify

bheztio 9 hours ago

"Add this feature" is often too vague, unless it's yet another button to a list of buttons. If you want your feature in a particular way, you need to specify it. If you're not even sure what you want, it's granted you won't be satisfied by the result, so you need to spend time figuring that out first. In other words, they're definitely great for write tasks too, but it does require more effort from the operator to formulate the problem.

codebje 7 hours ago

That problem is as old as commercial programming; it doesn't matter that now your actors are prompt engineer and LLM, the same story can be told with manager and programmer.

berkes an hour ago

Forgeties79 8 hours ago

This feels like just another variation of “it’s not the tool it’s the user,” which is too frequently leveraged during any discussion about AI. It makes it impossible to honestly assess the quality of the tool. You can always just say “people are doing it wrong.”

aleksiy123 8 hours ago

8note 8 hours ago

int3 8 hours ago

simonw 9 hours ago

I'm not sure about that. The most common error for a search task is omission, and that's really hard to spot - how do you verify that some answer that should be there wasn't included?

For things like "add this feature" you can verify by trying out the feature and seeing if it works. Of course, that won't tell you if there are edge-case bugs or security holes or other design flaws, but you can get to a positive confirmation of the happy case pretty quickly.

27183 9 hours ago

> The most common error for a search task is omission, and that's really hard to spot

NP-Hard, even[1]!

[1] https://www.i-programmer.info/news/112-theory/3830-physics-i...

whattheheckheck 8 hours ago

ipdashc 9 hours ago

I've slowly been coming around to this viewpoint as well. It's interesting that there's so much focus on using AI to write code (which, don't get me wrong, does work well but makes you lose track of what you're building so quickly) and seemingly less on analyzing code, finding bugs, etc

mihaelm 8 hours ago

The planning, which can also be done in concert with AI, before getting the AI to write the code helps with not losing track of what you're building. In my current workflow, I never tell AI to just code X, I always approach it in such a way to leave space for research and breaking it up into multiple units of work (tickets) if the scope of the feature or idea calls for it.

kibwen 8 hours ago

I wouldn't say it's "interesting", rather that it's a natural result of incentive structures. If the AI labs try to sell their product as being good at finding bugs, then their expected valuation is the entire market cap of the existing static analysis industry, which is not very high. If they instead sell their product as being good at writing software, then their expected valuation is the "market cap" of the code-writing industry, a.k.a. the total spent on software development labor, which is very high. It doesn't matter what's true, only what promises to make them the most money.

MBCook 9 hours ago

But it DIDNT “write that feature”. They made it extremely clear on the delay announcement the code was written without AI.

AI’s only part of this was helping review things and finding bugs. More bugs, bugs that would have been found later, whatever.

Postgres did not have a slop issue and it’s wrong for people to insinuate it.

r_lee 8 hours ago

I mean the transformer model came out of Google, and it's literally a query thing so yeah.

any kind of pattern matching / transformation is going to be an ideal task for LLMs

jeremyjh 8 hours ago

It is not in any way a “query thing” in the same manner as PageRank, it was based on prior work in deep learning and it is irrelevant that Deepmind was purchased by the same company that was behind Google Search.

vatsachak 9 hours ago

What? AI can't easily implement features. Just write a spec, ask if to expand it and then ask it to implement it

xyzsparetimexyz 6 hours ago

No offense but this is not exactly a groundbreaking statement. We've known about this verifiable tasks thing for a while.

hoppp 8 hours ago

If the entire project is developed with AI it can add features effectively but for large old codebases it becomes an issue

stefs 26 minutes ago

The Joel Test: 12 Steps to Better Code: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-s...

Step 5: Do you fix bugs before writing new code?

(now i feel old)

matt_2012 14 minutes ago

The fact that version control section is describing CVS because the article was written 5 years before git. Yeah, we’re old..

tosh 2 hours ago

Not specific re Postgres, just a general observation:

A pattern I'm seeing w/ companies and projects not used to continuous delivery (or at least shorter release cycles) is that they are slipping in schedules more now.

I think in the current environment it makes a lot of sense to re-think how often releases get cut and how to handle security related updates.

When you do only one or a few releases per year everything is 'higher' stakes and more bureaucratic.

pknerd 18 minutes ago

Seeing AI agents are founding and fixing bugs, I wonder about the future of "open source"

not-kinsale-joe 4 minutes ago

Why do you wonder this?

droppedasbaby 2 days ago

I guess the real challenge is figuring out how to scale verification, cause discovery isn't the bottleneck anymore. Generating more bug reports doesn't necessarily translate into faster fixes if the same small group of maintainers still have to validate the reports, review fixes, etc.

c0_0p_ 8 hours ago

Probably true if development accelerates because of AI, but if it's reasonably stable then hopefully new bug reports will plateau.

jimbokun 7 hours ago

Then just have the same AI bug checks for new PRs and automatically reject any that fail.

hxugufjfjf 4 hours ago

alexpadula 7 hours ago

Makes sense. Code base is over 30 years old. Lot's of hands went into shaping it. There will be bugs as not one contributor as the entire codebase in their head. The testing is where bugs should be caught. Not by ones knowledge. I actually think there will be more bugs that come out of nowhere either found by humans or automation.

baq 3 hours ago

The process should now be: write your specs in lean, LLMs fill the gaps, then you translate the proof into your end product software. Otherwise LLMs will simply keep finding bugs, both in old and new code.

chamomeal 42 minutes ago

Feel like “translating the proof into your end product” is a bit of a “draw the rest of the owl”

LtWorf 2 hours ago

You assume lean can express more than it can.

gosen 3 hours ago

AI struggling a bit with legacy databases in a way that you need more iterations to really find all the bugs, otherwise it turns into "find bugs -> fix bugs -> find more bugs which were not found on step 1 -> fix regressions" and that repeats again and again :/ But I'm sure that Postgres team will handle that eventually and we'll get a better product in the end

danolivo 2 hours ago

There are always bugs in the code - AI is just a little more powerful tool to detect them. For me, the main outcome of a bug is whether it is a security breach or it exposes the need to change the whole architecture. In current Postgres, AI hasn't found such significant bugs yet.

SeriousM 2 hours ago

So we have a new term: VDoS Deny a patch/version by burring the publisher with CVEs

dabinat 6 hours ago

If software as mature and widely-used as Postgres has this level of hidden bugs, what about the average software product?

creata 16 minutes ago

Unlike Postgres, the average product isn't written in C or C++, so it's probably better. People (even the Rust fans) underestimate how many footguns are everywhere in C and C++. Even the best developers write security bugs not infrequently.

And the average product is solving much easier problems (in terms of low-level programming, which is where the worst bugs tend to be) than a high-performance database.

marcus_holmes 6 hours ago

The average software product is worse. Lots worse.

And half the software products are worse than that.

Any organisation that said "let's move fast and break things" is now busy finding out what's actually broken.

tommek4077 2 hours ago

Depends. Security is and never was only bug free software.

If no attacker reaches system X you are not as exposed as with your internet facing frontend.

Merad 5 hours ago

Most likely pretty bad. It's not all that difficult to sweet talk Fable into doing a security review of a code base. I've pointed it at a few of the major open source projects in the main tech stack I work with and it found dozens of bugs in each. Many were fairly minor, and some of the more significant issues relied on fairly narrow attack vectors (for example, a compromised DB server being used to attack a web server). But this was just a single search pass, literally a few lines of prompt and an hour's worth of agent time.

SoftTalker 6 hours ago

Postgres is old but a lot of its features are new. You can't really say it's mature software, as much as it has changed over its lifetime.

Truly mature software doesn't get used, because people see low activity on github and assume it's "dead" or see no new features in years and assume that it's stagnating.

tibbar 5 hours ago

Note how Robert mentions a sharp increase in back-patched commits. Many of these bugs have indeed been around, silently, for a long time.

flakes 6 hours ago

Most of the parent comments in this thread did not seem to understand the article. So here’s the tl;dr

Postgres release is delayed due to the quality bar getting raised. New features are getting more eyeballs, and therefore leading to more rollbacks. Pre-existing releases are getting bug reports and backported fixes at much higher rate. Bug fixing might be taking away time from feature development, but does harden the codebase. LLM usage seems to have been a net positive.

Jean-Papoulos 3 hours ago

I hope the maintainers can make this release, and then just skip the next one to focus on bugfixing and the probable refactoring needed for some of the bugs.

flossly 8 hours ago

“A wizard is never late, nor is he early; he arrives precisely when he means to” -- Gandalf

liampulles 2 hours ago

Given that the core feature of Postgres is rock-hard reliability, this is great news.

ksec 4 hours ago

I wonder if the same is happening with mySQL? And if any of these would means OrioleDB takes a lot longer to be integrated?

kmkrworks 6 hours ago

I absolutely think that this is fantastic. LLMs are widely and so, everyone and their grandma has the capability to compromise on any system. We need to be more proactive on fixing bugs.

augunrik 3 hours ago

Ok, but does (s)he know? It's just guessing, so unfounded non-news?

"It’s possible that some of this jump is the result of committers making more mistakes this year than they did last year, but I don’t think anyone who works on the project really believes that’s the main cause. Rather, it seems likely that PostgreSQL committers were about as conservative in 2026 as they were in preceding years, but a lot more of the mistakes they made were quickly found by LLMs."

and

"And I think that’s also why we had so many late reverts, and why the release itself is delayed. Two factors are at play here."

so?

Zepto8537 3 hours ago

bug resolution is more important it may be affect delivery date

ta93754829 8 hours ago

"it's AI's fault"

I missed when AI became accountable for Postgres releases, when did that happen?

jimbokun 7 hours ago

It’s a tongue in cheek statement.

BrenBarn 27 minutes ago

> given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate?

I mean, maybe just innovate less? "Innovation" is one of those words that makes me queasy nowadays. It's been true for decades that a good deal of what's touted as "innovation" is just stuff that is not actually as important as fixing what's already there. Most software releases new versions far too often for far too little reason. So overall it's good to see Postgres slowing down rather than just barreling ahead with a new release.

abhimanyuinfose 4 hours ago

Much need for Security

Rodmine 3 hours ago

AI is great for one-shotting impressive demos and fixing well-defined things; it's not even close when it comes to very long context and really complex tasks. If you haven't created a harness around your complex application, the use of AI will hinder rather than help your project.

LoganDark 8 hours ago

Is no one entertaining the possibility that some contributions were lower quality due to AI? I'm surprised to have only seen arguments that it's review.

StilesCrisis 7 hours ago

If you look at the kind of bugs coming in, it's from all corners of the codebase, not just things changed in the last 1-2 years.

LoganDark 2 hours ago

Ah, that makes more sense. Thank you!

27183 9 hours ago

I'm not very positive on the social, technical, or intellectual impact of AI on software development. Actually, that's understating it. I think AI is basically cancer for the mind. That said, this framing gave me pause:

> The long-term picture is less clear and in some ways more troubling: given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate? Right now, I’m not sure. What I do know is that I, and many others, are working really hard to figure it out.

Two thoughts:

1. If the signal quality is high--the bug reports are generally valid, the submitted fixes are generally viable (if needing some attention)--then this all seems great. Pause innovation for a while, you can afford it. Focus on burning down the bug count, and resume feature development when things are more stable.

2. If the signal quality isn't good, or is sufficiently mixed that a lot of time is being wasted on low quality contributions... that's more complex. I don't know what to do about that. Maybe stop accepting contributions from unknown contributors? No idea.

From the post I'm not sure whether they're experiencing a (1) or a (2). If it's a (1) that's really interesting, and gives me some glimmer of hope for the future.

[edit] this piece of shit website won't let me reply "you're posting too fast.." so I'll respond to the two replies here (gondalez and sverhagen had basically the same point):

Yes that's a very good point. Not every valid bugfix is equivalently urgent. That's another critical dimension of quality--not burdening maintainers with pedantic bugs. This kind of contextual nuance is, coincidentally, something AI is absolutely awful at.

sverhagen 8 hours ago

Signal quality... what is that even? The bugs may be valid, but they may also be obscure, irrelevant, low priority. A sibling thread mentioned that they had found CVE-level bugs in Postgres, and those require attention in some version of "immediately". But beyond that... not every bug needs fixing; that's a trap.

tonyhart7 8 hours ago

"But beyond that... not every bug needs fixing; that's a trap"

this doesn't seem good attitude for critical software like database

sverhagen 7 hours ago

alexpadula 6 hours ago

tibbar 7 hours ago

whateveracct 6 hours ago

gondalez 8 hours ago

Seems like a lot of these bugs have not affected end-users or tripped up maintainers. They could be trade-offs that helped get other features over the line even?

In which case maybe leaving them alone is practical?

I love fixing bugs, but your post triggered this thought so I thought I'd share.

ares623 6 hours ago

Now, riddle me this. Does this mean productivity is up or down for the Postgres team?

bamboozled 8 hours ago

So it seems there as a certain level of safety in obscurity that was acceptable / fine which has been lost and therefore the focus is shifting towards churning through the slop.

jimbokun 7 hours ago

[flagged]

dang 7 hours ago

"Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative."

https://news.ycombinator.com/newsguidelines.html

I think of you as a good HN contributor, but you've been posting a lot of unsubstantive comments lately, and breaking the site guidelines in other ways too. Can you please stop doing this, and return to using HN in the intended spirit? Your substantive, thoughtful points are welcome, but not comments like this current one, nor these (to pick a few examples):

https://news.ycombinator.com/item?id=50280377

https://news.ycombinator.com/item?id=50275967

https://news.ycombinator.com/item?id=50147625

wiseowise 2 hours ago

> The short answer is that LLMs happened. All software contains bugs, and PostgreSQL’s code base is large, complex, and old. Our git history – converted from CVS – now reaches back more than 30 years, and the first code was written a decade before that. There’s a huge amount of code, and that code contains a huge number of bugs. That’s always been true, and it hasn’t stopped PostgreSQL from being popular or successful. What’s different now is that it’s become vastly easier to find those bugs. Fixing them has also gotten easier, but not to the same degree.

LLMs are a gimmick, btw. This is an Anthropic marketing stunt, how much did they pay you? /s

bosshawg 4 hours ago

TLDR After decades of being increasingly whittled down and optimized, an absoltuely fundamental piece of computing is now predomaitnely fixing bugs rather than adding new features.

ltbarcly3 9 hours ago

I have found major bugs in late beta's of postgres long before AI came along. I found a bug where malformed json would segfault the entire server (a segfault in a server process forces the entire cluster to shut down by design) when using jsonb in a release candidate once. They fixed it rather than ripping the entire feature out.

https://www.postgresql.org/message-id/20140818195634.2543.56...

It seems quite possible that someone wants to make it seem like LLMs are causing problems by over-reacting to things that could just be fixed, or delay the release slightly (or maybe waiting until late before a release to kill features they don't like?) Whatever it is, this seems like a dysfunctional process.

benjiro29 9 hours ago

Maybe its more a issue that X amount of people have more work to fix discovered issues. So the new features have not undergone the same level of testing as before.

And instead of releasing substandard new features, they rather focus on getting rid of the backlog and have more time to test.

LLMs are in effect directly responsible for this (in a positive way by finding a ton of issues that can be security issues). Reality is with LLMs now in the world, more work needs to be done on existing software as their ability to find bugs/security weaknesses is strong.

When the old bugs/security weaknesses are fixed, things will go back to a more normal release schedule.

ltbarcly3 8 hours ago

Are the features bad by design? Like are they bad even if they work perfectly because they add bad abstractions to pg's SQL syntax, or are just broken in how they are supposed to work? If so the process is dysfunctional to let them get this far before noticing.

Are the features designed well (from a product perspective) but implemented poorly? Again, the process is dysfunctional to let them get this far before it notices.

Were there known issues with these that were planned to be fix, but the fixes didn't happen in time? That would make sense and it happens, but how is an LLM making that worse? LLMs in the worst case let you get the same work done more quickly, because you can always get the work done as quickly as you ever could by just not using an LLM. So the strongest thing you might say here is that you thought LLMs would let you get a feature into shape before it was too late, and for whatever reason that was overly optimistic.

StilesCrisis 9 hours ago

If you are at the RC stage and still uncovering segfaults, "rip the feature out" is probably the only choice.

meow9 9 hours ago

I’m still amazed that with all the vibe coding, no one has created a Postgres alternative

TomatoCo 8 hours ago

nfriedly 9 hours ago

Why would they? Postgres is free and does an amazing job.

sapphire4 8 hours ago

I wish they'd adopt, merge in, or give official blessings to versioned postgres extensions like citus and pgvector.

nimchimpsky 8 hours ago

spolitry 9 hours ago

Also Postgres has enjoyed decades of debugging.

scrollaway 8 hours ago

To be honest I would love for someone to work on the structuring of pg_dump for example, which is entirely driven by regexes and binary structures. It’s awful and absolutely not programmable - a real shame.

esalman 8 hours ago

You can create a project on vibes, but you cannot maintain one on vibes.

sa46 9 hours ago

Many recent relational databases speak the Postgres wire protocol. For wholesale replacement, pgrust is a recent, contentious contender.

gnabgib 8 hours ago

I hope you don't believe this, PGRust has fallen far from grace. Wire protocol support is useful (other than said recommendation)

Remove pgrust: the entry is cheating (per-query kernels and result caching) (197 points, 10 days ago, 166 comments) https://news.ycombinator.com/item?id=50205816

malisper 8 hours ago

nektro 8 hours ago

postgres is mature database used the world over allegedly about to be on major version 19. how has the time not been spent already to get rid of the bugs?

Sharlin 8 hours ago

...are you serious?!

xlayn 6 hours ago

I sometimes think that the world would need to do a "snow leopard" release of everything... to unit test, to fix... and then we will be able to move forward... but AiMaxSlopIt will result in those situations where you have to rollback or redo from scratch parts... because it's unmantainable because it's bad... it's spread everywhere and "the map" is not there.

Anecdote, I did a travel across USA and when I was looking for a hotel, if you go from apple maps, to website, to try to book, the "load browser" in the maps... could end in states where you could not go back because back is get out of where you are and go back to the start of the map... and was a terrible experience... then you turbo charge it with "implement game changer UI improvements for the new bar on UI design" goal of some guy with enough power to make damage... and you end with softslop (or is it sloprosoft?)