Neues vom PostgreSQL Planet
Jimmy Angelakos: PostgresEDI September 2026 Meetup Recap: tiering to Iceberg, and Postgres from Nuxt
Last week we had our September PostgresEDI meetup, the first since postgres.scot went up as the home for Postgres events in Scotland.
Ming Ying: PlanetScale Released Text Search and We Have a Lot to Say (Part I)
Tomas Vondra: Are we reverting patches because of bugs found by AI?
Over the past month, several major features got reverted from Postgres 19. At this point, even if everything else goes perfectly, Postgres 19 will be released about a month later than originally planned. A couple recent blog posts seem to suggest the reverts happened due to AI finding complex bugs in those patches, with fixes way too invasive this late in the development cycle. I don’t think that narrative matches reality, and I think it matters to correct that.
Chris van Eijk: Unique per tenant in PostgreSQL: soft delete and RLS leaks
Chris van Eijk: Deleting one tenant in PostgreSQL: cascade, batch or DROP
Chris van Eijk: Counting per tenant in PostgreSQL: count, estimate, counter
Chris van Eijk: Audit log per tenant in PostgreSQL: what a trigger costs
Chris van Eijk: Job queues per tenant in PostgreSQL: the noisy neighbour
Chris van Eijk: Row-level security performance in PostgreSQL, measured
Chris van Eijk: PgBouncer and RLS: tenant context, SET LOCAL, shared plans
Elizabeth Garrett Christensen: Query Plan Hints in PostgreSQL 19: How & When to Use Advice
Query hints: You asked for it, Postgres 19 gave it to you. Now, they are just waiting to see how you use it.
For years the Postgres community was against adding support for hints. They felt if you had correctly analyzed tables, the Postgres query planner would make the right choice. And they're not wrong, for the most part. Yet many DBAs and developers will tell you of a time when a plan suddenly changed or something was saved by a hint. We can debate the good and bad elements of hints, but the cool thing is that you will soon have a choice in Postgres 19+.
David Wheeler: pg_clickhouse & chdb updates: Encoding, nesting, and types
Out now on GitHub and PGXN, pg_clickhouse v0.11.0 and the chdb extension v0.1.2 continue our dogged focus on cross-database compatibility. A slew of these enhancements derive from our header-only C libraries, clickhouse-c and pg-clickhouse-c. Let's take a look at just three of the changes in these releases.
What a character {#what_a_character}
Christophe Pettus: All Your GUCs in a Row: max_wal_size
Igor Suhorukov: Greenplum without the fork: Apache Cloudberry as PostgreSQL 19 Extensions
This is my personal experiment, not an official Apache Cloudberry release.
Since 2017 I have been keeping an eye on the PostgreSQL ecosystem for analytics and data warehousing. At work I had used AWS Redshift, with all the drawbacks and inconveniences a developer gets from a fork of an old PostgreSQL. To my mind, the ideal PostgreSQL-based solution should run on the latest PostgreSQL release, be built as an extension, be easy to start locally in a container for tests, and work with the latest versions of existing extensions such as PostGIS and pgvector.
Devrim GÜNDÜZ: Rust extensions started landing PostgreSQL RPM repository
After trying not to add any Rust packages to the PostgreSQL RPM repository, I finally bit the bullet and pushed pgrx and postgresql_anonymizer to the RPM repos, along with packaging guidelines:
https://github.com/pgdg-packaging/pgdg-rpms/wiki/Packaging-Rust-extensions-(pgrx
Some limitations exist for now:
https://github.com/pgdg-packaging/pgdg-rpms/wiki/Packaging-Rust-extensions-(pgrx)#supported-distributions
Hoping to add RHEL 10.3 and 9.9 support in November.
Enjoy!
Christophe Pettus: All Your GUCs in a Row: max_wal_senders
Hollis Varden: UUIDv4 or UUIDv7 for a primary key? 5 million rows on PostgreSQL 18
PostgreSQL 18 ships uuidv7() in core. No extension, no application code. So the old question comes back: if you want UUID keys, does the version matter?
I loaded 5 million rows three ways and measured. Short answer: UUIDv7 inserted in 27 seconds, UUIDv4 in 46. The v4 index came out 29% bigger. Random lookups by key cost the same.
SetupOne table per run:
CREATE TABLE t (id , payload text NOT NULL);The key was one of:
