Laurenz Albe: Create your PostgreSQL clusters with the "builtin" C collation!
A while ago, I wrote about the index corruption that you can get after an operating system upgrade, and recently I detailed how to keep the pain of having to rebuild indexes minimal. Since this is an...
View ArticleDaniel Westermann: PGConf.DE 2026 - The schedule for PGConf.DE 2026 is now live!
Discover the exciting lineup of PostgreSQL speakers and exciting topics that await you on the schedule for this year.See you in Essen in April
View ArticleHenrietta Dombrovskaya: February Meetup: slides and recording are available!
Thank you, Shaun, for presenting, and huge thanks to all participants for an engaging and productive discussion! As always, I am glad that people from all over the world can join us virtually, but if...
View ArticleMuhammad Aqeel: Semantic Caching in PostgreSQL: A Hands-On Guide to...
Your LLM application is probably answering the same question dozens of times a day. It just doesn't realize it because the words are different each time.The Problem with Exact-Match CachingIf you're...
View ArticlePaul Ramsey: Postgres JSONB Columns and TOAST: A Performance Guide
Postgres has a big range of user-facing features that work across many different use cases — with complex abstraction under the hood. Working with APIs and arrays in the jsonb type has become...
View ArticleTomas Vondra: The real cost of random I/O
The random_page_cost was introduced ~25 years ago, and since the very beginning it’s set to 4.0 by default. The storage changed a lot since then, and so did the Postgres code. It’s likely the default...
View ArticleAlastair Turner: A reponsible role for AI in Open Source projects?
AI-driven pressure on open source maintainers, reviewers and, even, contributors, has been very much in the news lately. Nobody needs another set of edited highlights on the theme from me. For a...
View ArticleRadim Marek: PostgreSQL Statistics: Why queries run slow
Every query starts with a plan. Every slow query probably starts with a bad one. And more often than not, the statistics are to blame. But how does it really work? PostgreSQL doesn't run the query to...
View ArticleVibhor Kumar: Open Source, Open Nerves
Trust, Governance, Talent, and the Enterprise Reality of PostgreSQLLast year at the CIO Summit Mumbai, I had the opportunity to participate in a leadership roundtable with CIOs across banking, fintech,...
View ArticleShaun Thomas: How Patroni Brings High Availability to Postgres
Let’s face it, there are a multitude of High Availability tools for managing Postgres clusters. This landscape evolved over a period of decades to reach its current state, and there’s a lot of...
View ArticleGilles Darold: pgdsat version 2.0
The PostgreSQL Database Security Assessment Tool has been updated to conform to the latest version, of the CIS Benchmark fort PostgreSQL
View ArticleFloor Drees: Developer U: Exercising Cohesion and Technical Skill in PostgreSQL
It’s been roughly a year since Andrew Dunstan first proposed an internal training program designed to mentor the next generation of PostgreSQL developers. Last week, the inaugural "Developer U" cohort...
View ArticleCornelia Biacsics: Contributions for week 8, 2026
Prague PostgreSQL Meetup met on Monday, February 23 for the February Edition - organized by Gulcin Yildirim Jelinek & Mayur B.Speakers:Damir BulicMayur B.Radim MarekJosef ŠimánekOn Wednesday,...
View ArticleLaurenz Albe: INSERT ... ON CONFLICT ... DO SELECT: a new feature in...
© Laurenz Albe 2026PostgreSQL has supported the (non-standard) ON CONFLICT clause for the INSERT statement since version 9.5. In v19, commit 88327092ff added ON CONFLICT ... DO SELECT. A good...
View ArticleMuhammad Aqeel: pg_semantic_cache in Production: Tags, Eviction, Monitoring,...
Part 2 of the Semantic Caching in PostgreSQL series that’ll take you from a working demo to a production-ready system.From Demo to ProductionIn Part 1, we set up pg_semantic_cache in a Docker container...
View ArticleLætitia AVROT: Mostly Dead is Slightly Alive: Killing Zombie Sessions
As a PostgreSQL expert, one of the most common “ghosts” I hunt during database audits is the zombie session. You know the one: a backend process that stays active or idle in transaction, holding onto...
View ArticleRobert Haas: pg_plan_advice: Plan Stability and User Planner Control for...
I'm proposing a very ambitious patch set for PostgreSQL 19. Only time will tell whether it ends up in the release, but I can't resist using this space to give you a short demonstration of what it can...
View ArticleJan Kristof Nidzwetzki: pg_plan_alternatives: Tracing PostgreSQL’s Query Plan...
PostgreSQL uses a cost-based optimizer (CBO) to determine the best execution plan for a given query. The optimizer considers multiple alternative plans during the planning phase. Using the EXPLAIN...
View Articlewarda bibi: How PostgreSQL Scans Your Data
To understand how PostgreSQL scans data, we first need to understand how PostgreSQL stores it.A table is stored as a collection of 8KB pages (by default) on disk.Each page has a header, an array of...
View ArticleZhang Chen: Expert-Level PostgreSQL Deleted Data Recovery in Just 5 Steps —...
It is 3 AM. A rogue DELETE just wiped 500,000 customer records. Traditional recovery takes hours and risks collateral damage. This guide shows you how to recover accidental DELETEs and UPDATEs in five...
View ArticleShaun Thomas: Using Patroni to Build a Highly Available Postgres Cluster—Part...
The last PG Phriday article focused on the architecture of a Patroni cluster—the how and why of the design. This time around, it’s all about actually building one. I’ve often heard that operating...
View ArticleGabriele Bartolini: From proposal to PR: how to contribute to the new...
In this article I walk you through the journey of adding the pg_crash extension to the new CloudNativePG extensions project. It explores the transition from legacy standalone repositories to a unified,...
View ArticleZhang Chen: Inside the Kernel: The Complete Path to PostgreSQL Delete...
In PostgreSQL, a DELETE operation does not immediately erase data from disk. The MVCC mechanism retains deleted rows as dead tuples, and reading these dead tuples is one viable approach to data...
View ArticleBruce Momjian: New Presentation
I just gave a new presentation at SCALE titled The Wonderful World of WAL. I am excited to have a second new talk this year. (I have one more queued up.) I have always wanted to do a presentation about...
View ArticleAndreas Scherbaum: PostgreSQL Berlin March 2026 Meetup
On 5th of March, 2026, we had the PostgreSQL March Meetup in Berlin. Zalando hosted it again, and like last time it was four regular talks in two parallel tracks. Attendee number was a bit smaller...
View ArticleRadim Marek: Production Query Plans Without Production Data
In the previous article we covered how the PostgreSQL planner reads pg_class and pg_statistic to estimate row counts, choose join strategies, and decide whether an index scan is worth it. The message...
View ArticleCornelia Biacsics: Contributions for week 9, 2026
The community met on Wednesday, March 4, 2026 for the 7. PostgreSQL User Group NRW MeetUp (Cologne, ORDIX AG). It was organised by Dirk Krautschick and Andreas Baier. Speakers: Robin RielJan...
View ArticleUmair Shahid: Thinking of PostgreSQL High Availability as Layers
High availability for PostgreSQL is often treated as a single, big, dramatic decision: “Are we doing HA or not?”That framing pushes teams into two extremes:a “hero architecture” that costs a lot and...
View ArticleDave Page: AI Features in pgAdmin: Configuration and Reports
This is the first in a series of three blog posts covering the new AI functionality coming in pgAdmin 4. In this post, I'll walk through how to configure the LLM integration and introduce the...
View ArticleYuwei Xiao: Introducing pg_duckpipe: Real-Time CDC for Your Lakehouse
Automatically keep a fast, analytical copy of your PostgreSQL tables, updated in real time with no external tools needed.
View Article