Memory context: private memory management in PostgreSQL
by
Laurenz Albe |
06.2023 (updated 2025-01-27) PostgreSQL uses shared memory for data shared between processes. With the exception of the dynamic shared memory […]
Use HOT, so CLUSTER won't rot in PostgreSQL
by
Laurenz Albe |
06.2023CLUSTER is sometimes the last resort to squeeze performance out of an index scan. Normally, you have to repeat CLUSTER […]
ERROR: invalid byte sequence - Fix bad encoding in PostgreSQL
by
Laurenz Albe |
05.2023(Inscription seen on a T-shirt) It's annoying to get error messages caused by encoding problems. But it is more annoying […]
PostgreSQL ALTER DEFAULT PRIVILEGES - permissions explained
by
Laurenz Albe |
05.2023 Many people have heard that ALTER DEFAULT PRIVILEGES makes it easy to allow other users access to tables. But […]
Different from many other database systems, PostgreSQL does not support query hints. That makes it difficult to force the […]
Docker and sudden death for PostgreSQL
by
Laurenz Albe |
05.2023 This is a short war story from a customer problem. It serves as a warning that there are special […]
EXPLAIN (GENERIC_PLAN): New in PostgreSQL 16
by
Laurenz Albe |
04.2023 A while ago, I wrote about how difficult it is to get an execution plan for a parameterized query. […]
The PostgreSQL documentation has some information about row locks. But typically, you cannot see them in pg_locks, and not […]
Breaking your PostgreSQL database with bad CHECK constraints
by
Laurenz Albe |
03.2023I am on a spree! After writing about breaking your database and transaction ID wraparound, here I am writing about […]
Transaction ID wraparound: a walk on the wild side
by
Laurenz Albe |
01.2023 Most people are aware of transaction ID wraparound. The concept has been well explained in Hans' article, so I […]