postgresql when it's not your job

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:

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.

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