Tracking view dependencies in PostgreSQL
by
Laurenz Albe |
09.2019 We all know that in PostgreSQL we cannot drop an object if there are view dependencies on it: [crayon-6857e1a58991c545988382/] […]
ICU collations against PostgreSQL data corruption
by
Laurenz Albe |
07.2019 (Updated 2024-09-29) This article was prompted by version 2.28 of the GNU C library, which changed the definition of […]
Abusing SECURITY DEFINER functions in PostgreSQL
by
Laurenz Albe |
05.2019UPDATED August 2023: Functions defined as SECURITY DEFINER are a powerful, but dangerous tool in PostgreSQL. The documentation warns of […]
PostgreSQL v12 new feature: optimizer support for functions
by
Laurenz Albe |
05.2019 PostgreSQL commit 74dfe58a5927b22c744b29534e67bfdd203ac028 has added “support functions”. This exciting new functionality that allows the optimizer some insight into functions. […]
Triggers to enforce constraints in PostgreSQL
by
Laurenz Albe |
04.2019 Sometimes you want to enforce a condition on a table that cannot be implemented by a constraint. In such […]
It is a frequent complaint that count(*) is so slow on PostgreSQL. In this article I want to explore […]
"LOCK TABLE" can harm your database's health
by
Laurenz Albe |
03.2019 Many people know that explicit table locks with LOCK TABLE are bad style and usually a consequence of bad […]
"Exclusive backup" method is deprecated - what now?
by
Laurenz Albe |
02.2019 UPDATE 12.07.2022: The “exclusive backup” method of calling pg_start_backup('label') before backup and pg_stop_backup() afterwards has been removed in PostgreSQL […]
UPDATED August 2024 pgbouncer is the most widely used connection pooler for PostgreSQL. This blog will provide a simple cookbook […]
Be prepared for prepared transactions
by
Laurenz Albe |
12.2018Prepared transactions are disabled in PostgreSQL by default, since the parameter max_prepared_transactions has the default value 0. You don't need […]