21:31
Lies, Damn Lies, and LLM Output.
10 August 2025
I subscribe to Medium (don’t judge), and their weekly summary pushed an article to me entitled The Postgres Revolution Is Here: Why Version 18 Changes Everything for Developers. Well, OK, that sounds relevant to my interests. Let’s check it out!
Oh.
Oh, dear.
Oh, sweet Mother of God.
The author lists 10 new incredible amazing features in PostgreSQL version 18 (which is in beta right now, you should check it out). Of the features he describes:
- Four are described basically correctly, but all of them were introduced in earlier versions of PostgreSQL.
- Two kind of sort of exist, but they were introduced before PostgreSQL v18 and the author gets details wrong (in some cases, completely and totally wrong).
- And four are pure hallucinations. Those features don’t exist, at all, anywhere.
The only explanation is that this article was a cut and paste from an LLM. If you wanted a good example of why using LLMs for technical advice is a bad idea, here you go.
Here are the Amazing New Features the author talks about, and what’s wrong with each of them:
1. MERGE Gets Real: No More Hacky UPSERT Workarounds
Merge has been in PostgreSQL since version 15. There are some incremental improvements in version 18, but they are far from revolutionary.
2. Parallel COPY: Data Ingestion at Warp Speed
There is no such feature in PostgreSQL version 18 (or any other version of PostgreSQL).
3. `JSON_TABLE“: SQL and JSON, Finally in Sync
JSON_TABLE
was introduced in PostreSQL version 17.
4. Logical Replication of Schema Changes: The DDL Dream
This feature does not appear in PostgreSQL version 18.
5. Disk I/O Telemetry: pg_stat_io
Arrives
pg_stat_io
was introduced in PostgreSQL version 16. None of the columns described in the article exist in `pgstatio“.
6. Zstandard Compression: Store More, Pay Less
PostgreSQL introduced zstd compression in PostgreSQL version 16, but not for TOAST tables. pgdump archives and pgbasebackup backups. PostgreSQL version 18 does not have it for TOAST tables either.
Further, that’s not the right syntax for setting compression for extended objects. PostgreSQL tables don’t have “toast compression”; objects are compressed both in the main table and in TOAST tables. The syntax shown is for setting storage parameters on a table, but there is no storage parameter toast_compression
.
7. The Index Advisor: PostgreSQL Gets Smart
Oh for fuck’s sake. There is no such thing as pg_stat_plans
in community PostgreSQL. There is a third-party module pg_stat_plans
that has not been updated in 12 years. You want index advice, plunk down the money for pg_analyze
.
8. IO-Aware Autovacuum: No More Query Spikes
There is no such GUC autovacuum_io_throttle_target
in version 18 or any other PostgreSQL version.
9. Per-Column Collation: Globalization Made Simple
This feature has been in PostgreSQL so long it’s not even worth my time to look up when it was introduced. A decade or more, at least.
10. Multirange Queries: Write Less, Query More
Multirange types were introduced in PostgreSQL version 14. That’s not the right syntax for constructing multirange types There’s no bare type multirange
: there are specific ones for the types of the bounds of the range, such as int4multirange
.
My brain hurts now.
I am sure it took me much longer to write this than it took the author to write the article. We as an industry (and as a society) are setting ourselves for failure by relying on the intelligence of something that can’t think and can’t check its work.
There is one comment.
Caleb at 10:19, 11 August 2025:
Preach! I mean I found one case where the egenic mode might be useful but generally speaking I’m starting to have a general mistrust of information it gives me. Sometimes it’s because it’s massively out of date, sometimes it’s because it’s misleading. I’ve been trying to get it to give me information on a video game or two and half the time it’s using out-of-date information the other half of the time it’s straight up misleading, or wrong.
Comment