Neues vom PostgreSQL Planet
Christophe Pettus: All Your GUCs in a Row: array_nulls (Special Update)
Hollis Varden: Five PostgreSQL queries that did more work than I asked for
Most slow queries I have looked at are not doing anything clever. They are doing extra work that nobody asked for, because one word in the SQL told PostgreSQL to.
I took five of those words and measured each one against the version without it, on the same table. The biggest gap was UNION: 13.6 seconds, against 0.68 seconds for UNION ALL on the same two halves of the table.
SetupOne table, u, with 2,000,000 rows: a bigint identity key, an email, a status, a timestamptz and an md5 note.
Kaarel Moppel: An OLTP perf check on Postgres 19 Beta 3.5
Christophe Pettus: The International Ice Patrol
Andrei Lepikhov: Why is PostgreSQL's Numeric Type so Slow?
The numeric type has existed in Postgres for more than 25 years. Over that time, it has undergone many optimisations and refinements.
Christophe Pettus: All Your GUCs in a Row: num_os_semaphores
Igor Suhorukov: Vectorized Query Execution in PostgreSQL 19: Arrow, ORCA and Flight SQL in a PostgreSQL Extension
Last week I ported Apache Cloudberry to PostgreSQL 19 as a set of extensions and described where the port falls behind the original fork. On ClickBench, columnar engines beat it by an order of magnitude. The culprit isn’t the MPP implementation but PostgreSQL’s executor, which works on rows. Each row travels up the node tree on its own, every value goes through fmgr, and the cluster’s segments merely add more processors running the very same loop over table rows.
Christophe Pettus: The Deep End
Dimitri Fontaine: Consolidating databases with Postgres logical replication
This is part 2 of a series about Postgres logical replication use-cases, and about how the feature set has evolved over the past ten years and ten releases, one architecture at a time. Part 1 built a hub-and-workers system for write scalability and has the table of what each release added, which this post assumes. Part 3 covers a zero-downtime major upgrade.
Christophe Pettus: All Your GUCs in a Row: notify_buffers
Hollis Varden: UUIDs stored as text: what it costs in PostgreSQL 18
Last week I compared UUIDv4 and UUIDv7 as primary keys. There is a third case I left out: the key is a UUID, but the column is text. Some ORMs and JSON-first codebases end up there because a string is the easy path.
So I kept the same test and changed only the column type. 5 million rows, UUIDv7 and UUIDv4, each stored as uuid and as text. Short answer: the text index was 88% bigger, one level deeper, and every random lookup read one more page.
SetupSame as last time. One table per run:
Alexander Ioffe: I ran the same query twice and Postgres disagreed with itself
Prateek Arora: I timed 179 index recommendations on real data. 18% made the query slower.
My tool tells you things like “this index cuts the query’s cost by 91%”. Before releasing it, I wanted to know what that number is actually worth.
The tool is PgLens, a Postgres index advisor I’m building. Like several other advisors, it checks each suggestion with HypoPG: create a hypothetical index, run EXPLAIN again, and keep the suggestion if the planner’s estimated cost drops by at least 15%.
Christophe Pettus: Everyone into the Pool
Christophe Pettus: The Vector That Lied About Its Dimensions
Cornelia Biacsics: Contributions for week 39
On 29 September, the PostgreSQL Usergroup NL met, organized by Gerard Zuidweg and Sebastiaan Mannem
Speakers:
- Peter Lengkeek
- Ellert Van Koperen
- Jan Karremans
The Postgres US Summit 2026 was held from 30 September to 2 October.
Organizers:
