#​535 — December 20, 2023

Web Version

🎄 As the subject line indicates, this is the last issue of the year – we're taking a week off for Christmas! Never fear, though, as we'll be back as usual on January 3 with a special issue looking back at another fantastic year in the Postgres ecosystem. We hope you have a happy holiday season, and we'll see you in 2024!
Peter Cooper and the Cooperpress team

Together with  Redgate

Postgres Weekly

Transaction Isolation in Postgres, Explained — Despite how old the concept of database transactions is, they continue to trip up even the most assiduous of developers, with the role of isolation in affecting how concurrent transactions interact adding another dimension of complexity. Gwen does a good job in this primer on the topic.

Gwen Shapira

Broken Foreign Keys: How Can That Happen?“There are surprisingly many ways to end up with broken foreign keys in PostgreSQL,” says Laurenz, who shows off a few such ways here. There are some details to be aware of that may prove valuable to remember if your foreign keys ever turn sour.

Laurenz Albe

PostgreSQL Basics with Ryan Booz — In this series of articles, Ryan Booz will help new PostgreSQL users get to grips with the basics starting with roles and privileges.

Redgate sponsor

📊  The Full 2023 State of PostgreSQL Survey Results — Just a week after they gave us a sneak peak at the results of their latest survey, Timescale has dropped the full report and raw (but anonymized) data from the 888 respondents.


Working with GPS Data in PostGIS — A practical, step-by-step walkthrough for importing and refining GPS data in PostGIS, focusing on removing inaccuracies and enhancing quality for practical use, complete with code and examples.

Ryan Lambert


Increasing the Visibility of Perf and Events on Amazon RDS and Aurora
Valter Rehn (AWS)

79 (and Counting) Postgres HOWTOs / Tutorials
Nikolay Samokhvalov

Code and Tools

pg_idkit: An Extension for Generating IDs — A Rust-built extension that can generate a myriad of different unique ID schemes from UUIDs to NanoIDs and ksuids. It’s mature and happy in production. The author says: “I just put a bunch of elbow grease into the semi-automated release process and making sure it was easy to run the extension in a container, as an RPM, and with a regular install on glibc based systems.”


Reduce Costs and Simplify Your Postgres Estate with the Same Postgres On-Premises, Cloud or Hybrid

EDB Postgres sponsor

pg_sparse: Sparse Vector Similarity Search in PostgresParadeDB is an open source ElasticSearch alternative built on Postgres and they’ve created an extension (forked from pgvector) to store and work with sparse vectors in Postgres to extend it further: pg_sparse is to sparse vectors what pgvector is to dense vectors.”


sqlauthz: A Declarative Permissions Management Approach — A tool that enables you to manage permissions in Postgres in a declarative way using the Polar language. Note that it’s considered experimental

Cam Feenstra

🪐  Q3C: Extension for Spatial Indexing on a Sphere — My astronomical knowledge is weak, but apparently this extension is useful for working with the position of astronomical objects upon the celestial sphere. Maybe.

Sergey Koposov

Key Postgres Extensions Every Developer Must Know When Migrating from Oracle — A handy roundup.

Deepak Mahto