Month: December 2020
The shibboleth of PostgreSQL
After all the technical articles I have written, I thought it would be nice to write about PostgreSQL sociology for a change. Language and community A community like PostgreSQL has no clearly defined borders. There is no membership certificate; you belong to it if you feel that you belong. That said, you can only […]
PostgreSQL exclusive chain cron jobs using pg_timetable
I wrote about the new pg_timetable 3 major release not so long ago. Two essential features were highlighted: – new session locking implementation – new jackc/pgx Golang library used Today I want to reveal one more advanced feature! Fasten your seat belts! First, we need to distinguish exclusive client session mode from exclusive chain execution […]
Is UPDATE the same as DELETE + INSERT in PostgreSQL?
Introduction We know that PostgreSQL does not update a table row in place. Rather, it writes a new version of the row (the PostgreSQL term for a row version is “tuple”) and leaves the old row version in place to serve concurrent read requests. VACUUM later removes these “dead tuples”. If you delete a […]
Upgrading and updating PostgreSQL
Blog post updated 05.12.2022 People keep asking: “What are the best ways to upgrade and update my PostgreSQL to the latest version?” This blog post covers how you can upgrade or update to the latest PostgreSQL release. Before we get started, we have to make a distinction between two things: Updating PostgreSQL Upgrading PostgreSQL Let’s […]
BLOB cleanup in PostgreSQL
PostgreSQL offers a nice BLOB interface which is widely used. However, recently we came across problems faced by various customers, and it makes sense to reflect a bit and figure out how PostgreSQL handles BLOBs – and especially BLOB cleanup. Using the PostgreSQL BLOB interface In PostgreSQL, you can use various means to store binary […]