Neues vom PostgreSQL Planet
Ian Barwick: PgPedia Week, 2025-12-14
MAROJU PAVAN CHARY: Summary of PostgreSQL in the year 2025
Andrei Lepikhov: Custom Properties for PostgreSQL Database Objects Without Core Patches
Working in development, there is a common challenge: how to attach custom metadata to database objects without modifying Postgres's core code. In this article, I briefly demonstrate a practical solution using Postgres's SECURITY LABELS mechanism to implement custom properties that are transactional, properly linked to database objects, and work with standard Postgres operations.
Hubert 'depesz' Lubaczewski: Quick and dirty loading of CSV files
Andreas Scherbaum: PostgreSQL Meetup in Frankfurt December 2025
Hubert 'depesz' Lubaczewski: Small improvement for pretty-printing in paste.depesz.com
Hubert 'depesz' Lubaczewski: What is index overhead on writes?
Henrietta Dombrovskaya: pg_acm is here!
I am writing this post over the weekend but scheduling it to be published on Tuesday, after the PG DATA CfP closes, because I do not want to distract anyone, including myself, from the submission process.
A couple of months ago, I created a placeholder in my GitHub, promising to publish pg_acm before the end of the year. The actual day I pushed the initial commit was January 3, but it still counts, right? At least, it happened before the first Monday of 2026!
Tomas Vondra: Stabilizing Benchmarks
I do a fair amount of benchmarks as part of development, both on my own patches and while reviewing patches by others. That often requires dealing with noise, particularly for small optimizations. Here’s an overview of ways I use to filter out random variations / noise.
Most of the time it’s easy - the benefits are large and obvious. Great! But sometimes we need to care about cases when the changes are small (think less than 5%).
Josef Machytka: Dissecting PostgreSQL Data Corruption
PostgreSQL 18 made one very important change – data block checksums are now enabled by default for new clusters at cluster initialization time. I already wrote about it in my previous article. I also mentioned that there are still many existing PostgreSQL installations without data checksums enabled, because this was the default in previous versions.
Umut TEKIN: Exploration: CNPG Logical Replication in PostgreSQL
PostgreSQL has built-in support for logical replication. Unlike streaming replication, which works at the block level, logical replication replicates data changes based on replica-identities, usually primary keys, rather than exact block addresses or byte-by-byte copies.
Ahsan Hadi: PostgreSQL 18 RETURNING Enhancements: A Game Changer for Modern Applications
PostgreSQL 18 has arrived with some fantastic improvements, and among them, the RETURNING clause enhancements stand out as a feature that every PostgreSQL developer and DBA should be excited about. In this blog, I'll explore these enhancements, with particular focus on the MERGE RETURNING clause enhancement, and demonstrate how they can simplify your application architecture and improve data tracking capabilities.
Zhang Chen: Not All Unrecoverable PostgreSQL Data Is Actually Lost
Andrei Lepikhov: Inventing A Cost Model for PostgreSQL Local Buffers Flush
In this post, I describe experiments on the write-versus-read costs of PostgreSQL's temporary buffers. For the sake of accuracy, the PostgreSQL functions set is extended with tools to measure buffer flush operations. The measurements show that writes are approximately 30% slower than reads. Based on these results, the cost estimation formula for the optimiser has been proposed:
flush_cost = 1.30 × dirtied_bufs + 0.01 × allocated_bufs.
Deepak Mahto: PostgreSQL Table Rename and Views – An OID Story
Recently during a post-migration activity, we had to populate a very large table with a new UUID column (NOT NULL with a default) and backfill it for all existing rows.
Instead of doing a straight:
ALTER TABLE ... ADD COLUMN ... DEFAULT ... NOT NULL;we chose the commonly recommended performance approach:

