Case-insensitive pattern matching in PostgreSQL
by
Laurenz Albe |
06.2022 (Updated on 2024-11-27) Case-insensitive search is a much-requested feature, partly (I suspect) to maintain compatibility with Microsoft SQL […]
View permissions and row-level security in PostgreSQL
by
Laurenz Albe |
06.2022 The details of how view permissions are checked have long puzzled me. PostgreSQL v15 introduces “security invoker” views, which […]
How to cancel a hanging PostgreSQL query
by
Laurenz Albe |
05.2022 Sometimes a PostgreSQL query takes forever. Usually, it is easy to interrupt (cancel) such a statement, but sometimes it […]
Next to character encoding, time zones are among the least-loved topics in computing. In addition, PostgreSQL's implementation of timestamp […]
How to DROP ROLE or DROP USER in PostgreSQL
by
Laurenz Albe |
03.2022 You might, at first glance, believe that DROP ROLE (or DROP USER, which is the same) is a simple […]
Query parameter data types and performance
by
Laurenz Albe |
03.2022 Recently, I could help solve a “mysterious” performance problem for a customer. The problem turned out to be a […]
Pipeline mode for better PostgreSQL performance on slow networks
by
Laurenz Albe |
03.2022 It is known that high network latency is bad for database performance. PostgreSQL v14 has introduced “pipeline mode” for […]
Automatic partition creation in PostgreSQL
by
Laurenz Albe |
02.2022 Table partitioning is one of the best-liked features out of the more recent PostgreSQL developments. However, there is no […]
Entity-attribute-value (EAV) design in PostgreSQL - don't do it!
by
Laurenz Albe |
11.2021 Customers have often asked me what I think of “Entity-attribute-value” (EAV) design. So I thought it would be a […]
TCP keepalive for a better PostgreSQL experience
by
Laurenz Albe |
10.2021 (Updated 2023-06-22) If you've heard about TCP keepalive but aren't sure what that is, read on. If you've ever […]