Álvaro Herrera
Álvaro Herrera is a PostgreSQL contributor and committer. He authored autovacuum, background workers, BRIN indexes, commit timestamps, savepoints, shared row locking, and some partitioning features. Álvaro co-authored DDL-event triggers, MERGE, XMLTABLE, \crosstabview. He also shepherded thousands of patches from other people into open source PostgreSQL.
Álvaro has more than 20 years of experience writing new PostgreSQL features and his code appears in all supported major releases and is used in millions of servers around the world.
Your database is corrupt? Álvaro can fix it.
Read Blogs
Technical Blog
After a very long development period, we finally completed the project to rework NOT NULL constraints in PostgreSQL. This has long been a desire of the Postgres development community, and we finally pulled it off for version 18, which has made me very happy. What changed? The most visible user change is that NOT NULL constraints now have names. These names are visible in psql under the \d+ command...
Technical Blog
A simple description of the new WITH TIES standard feature in PostgreSQL 13.
Technical Blog
One of the interesting new features in PostgreSQL for some time now is the ability to control removal of WAL files using replication slots. The dark side is that replication slots can cause disks to fill up with old WAL, killing the main production server. In this article I explain PostgreSQL replication slots, and how a new feature in PostgreSQL 13 helps prevent this problem.
Technical Blog
Just as last year was ending, one of our long-time customers came to us because one of their long-existing PostgreSQL queries involving PostGIS geometry calculations was much slower for specific values. We researched the problem and found out how to solve it; read on! What we found as the cause of the problem will surprise you! The starting observation, reported by our customer, was that running a...
Technical Blog
I have written about managing a PostgreSQL commitfest before. During the PostgreSQL 13 development cycle, I did it again. This time I used a different strategy, mostly because I felt that there was excessive accumulation of very old patches that had received insufficient attention. So apart from bugfixes (which are always special cases), I focused on patches that had been sitting in the queue for...
Technical Blog
Now that PostgreSQL 12 is out, we consider foreign keys to be fully compatible with partitioned tables. You can have a partitioned table on either side of a foreign key constraint, and everything will work correctly. Why do I point this out? Two reasons: first, when partitioned tables were first introduced in PostgreSQL 10, they didn’t support foreign keys at all; you couldn’t create FKs on...
Technical Blog
We seldom credit patch reviewers. I decided to pay a little homage to those silent heroes for a few of them: here’s the list of people who were credited as having reviewed the patches mentioned in my previous article for PostgreSQL 11. The number in front is the number of times they were credited as reviewers. 7 Amit Langote, Robert Haas 5 Dilip Kumar, Jesper Pedersen, Rajkumar Raghuwanshi 4 Peter...
Technical Blog
A partitioning system in PostgreSQL was first added in PostgreSQL 8.1 by 2ndQuadrant founder Simon Riggs. It was based on relation inheritance and used a novel technique to exclude tables from being scanned by a query, called “constraint exclusion”. While it was a huge step forward at the time, it is nowadays seen as cumbersome to use as well as slow, and thus needing replacement. In version 10...
Technical Blog
I spent a couple of days in São Paulo, Brazil last week, for the top-notch PGConf.Brazil 2018 experience. This year I gave a talk about improvements in the declarative partitioning area in the upcoming PostgreSQL 11 release — a huge step forward from what PostgreSQL 10 offers. We have some new features, some DDL handling enhancements, and some performance improvements, all worth checking out. I’m...
Technical Blog
I just committed a patch by Pavel Stěhule that adds the XMLTABLE functionality to PostgreSQL 10. XMLTABLE is a very useful feature dictated by the SQL/XML standard, that lets you turn your XML data into relational form, so that you can mix it with the rest of your relational data. This feature has many uses; keep reading for some details on it. Probably the most interesting use case of XMLTABLE is...