Sammlung von Newsfeeds
Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 20 – Add min() and max() aggregate support for uuid.
Floor Drees: EDB heads to PGConf.Brasil 2026, this is what we’ll be talking about!
Christophe Pettus: All Your GUCs in a Row: enable_presorted_aggregate
Haki Benita: How to Achieve Pruning When Querying by Non-Partitioned Columns in PostgreSQL
One of the most valuable things about partitioned tables is pruning - the database's ability to eliminate entire partitions based on a query predicate. Under conventional wisdom, pruning can only be achieved when querying by the partition key - this makes choosing the right key extremely difficult. However, if your data follows certain patterns, using some clever tricks you can achieve pruning even when filtering by non-partition key columns.
Christophe Pettus: All Your GUCs in a Row: enable_partitionwise_join
Ruohang Feng: Happy 30th Birthday, PostgreSQL
SHRIDHAR KHANAL: PostgreSQL Disaster Recovery with pgBackRest TLS Transport
The backup node and DR server don’t need to share SSH keys. Here’s how pgBackRest’s native TLS transport provides certificate-authenticated restores and strict security isolation, making it the cleaner choice for isolated or large-scale recovery environments.
Mayur B.: My Dishonest Benchmark
***************************************************
Database benchmarking used to be a full-contact sport.
Wellingtone Luvonga: Going Multi-Region: How to Set Up CloudNativePG(CNPG) Distributed Topology
High availability within a single Kubernetes cluster is great, but what happens if an entire region goes down? To achieve true disaster recovery and cross-region resilience for PostgreSQL, you need a distributed topology.
Recently, I tackled setting up CloudNativePG (CNPG) Distributed Topology in a local minikube playground using MinIO. In this post, I’ll break down exactly how it works, walk through the YAML configuration, and share some key lessons learned along the way.
Christophe Pettus: All Your GUCs in a Row: enable_partitionwise_aggregate
Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 20 – Add backend-level lock statistics
Michael Banck: Replication Deadlock Bug in Current Postgres Releases 14-16
The current minor releases of Postgres versions 14-16 (14.23, 15.18 and 16.14, released on May 14th) introduced a regression that can lead to a MultiXactOffsetSLRU deadlock during transaction log (WAL) replay in certain circumstances.
Devrim GÜNDÜZ: Inaugural PostgreSQL Istanbul Meetup was a blast!
Gabriele Bartolini: CNPG Recipe 25 - Declarative Roles and Passwordless TLS in CloudNativePG 1.30
CloudNativePG 1.30 introduces the DatabaseRole CRD and built-in TLS client certificate issuance, letting application teams own their PostgreSQL credentials declaratively and connect without ever handling a password.
Richard Yen: Are You .ready?
It is 9:12 a.m. on a Monday. Someone on your team opens pg_wal/archive_status/ during a storage scare and sees a long list of files ending in .ready. They ask the question many of us have asked at least once: “Is replication broken?” Streaming replicas still look mostly fine, but .ready files keep piling up, disk usage keeps climbing, and nobody is fully sure what .ready and .done are actually telling you.
Hans-Juergen Schoenig: Why pg_hardstorage has no incremental chain
Almost every conversation about pg_hardstorage's repository format ends up at the same question: "where's the incremental chain?"
Short answer: there isn't one. By design.
The chain footgunIn a chained-incremental format, pgBackRest's default, Barman's incremental mode, every incremental references the previous backup directly:
Christophe Pettus: All Your GUCs in a Row: enable_partition_pruning
Radim Marek: VACUUM at the Page Level
In HOT Updates in Postgres we covered page pruning clean up HOT chains, an elegant shortcut where PostgreSQL reclaims dead tuple space during ordinary reads. All that without waiting for any background process. But pruning is exactly that: a shortcut. It only works within a single page, and only for HOT-updated tuples. For everything else (cold updates that touch indexed columns, plain DELETEs, index entry cleanup, free space map registration, visibility map maintenance) we need VACUUM.

