#​584 — January 16, 2025

Web Version

Together with  pgAnalyze

Postgres Weekly

Don't Do This (in Postgres) — An interesting page on the official Postgres wiki that rounds up a variety of advice around ‘common mistakes’ in using Postgres and what not to do, such as “Don’t use char(n) and “Don’t use serial. Some of these will be contentious, but are well backed up with reasons. The page is updated, but it’d be nice to see more added.

Postgres Wiki

The Power of Open Source in Postgres — Laurenz demonstrates how Postgres’ open source nature is invaluable when it comes to answering questions about how it operates, in case by tracking down the reason for the default setting for autovacuum_vacuum_scale_factor. Knowing how to do what he does in this post is a valuable skill.

Laurenz Albe

Find the Best Postgres Monitoring & Tuning Vendor for 2025 — Download our free Vendor Evaluation Template to swiftly compare features, score demos, and confidently pick the best Postgres performance & monitoring solution to meet your 2025 budget needs.

pganalyze sponsor

QUICK BITS:

The Anatomy of Table-Level Locks — A look at the meaning and motivation behind locking in database systems, before more closely looking at the various ways tables can be locked in Postgres and how conflicts between these locks are resolved.

Gulcin Yildirim Jelinek

Idle Transactions Cause Table Bloat? Wait, What?“Yup, you read it right. Idle transactions can cause massive table bloat that the vacuum process may not be able to address.”

Umair Shahid

📄 Postgres 18 to Let You Change the Max Number of Autovacuum Workers on the Fly Daniel Westermann

📄 The Importance of Testing with Not-So-Usual Setups – A lesson learnt tracing down a bug in the pgagroal connection pooler. Luca Ferrari

📄 Waiting for Postgres 18: Enable BUFFERS with EXPLAIN ANALYZE by Default Hubert depesz Lubaczewski

📄 Waiting for Postgres 18: Support LIKE with Nondeterministic Collations Hubert depesz Lubaczewski

📄 Why Quantum-Safe Postgres is Critical Today Timothy Steward (Fujitsu)

🛠 Code and Tools

pg_mooncake: Fast Columnstore Tables in Postgres for Analytics — A Postgres extension that adds columnar storage and vectorized execution (using DuckDB) for fast analytics within Postgres. Columnstore tables are stored as Iceberg or Delta Lake tables on the local file system or cloud storage. v0.1 just landed.

Mooncake Labs

🐕 pgDog: A New Rust-Powered Postgres Query Router and Proxy — The main developer of the PgCat Postgres pooler has shifted to working on this dog-themed ‘spiritual successor’ that offers similar pooling, load balancing, and proxying, but with a plugin system and an AGPL license (PgCat is MIT).

Lev Kokotov

Ruby Active Record Adapter for AWS Aurora DSQL — The “very beginnings” of an Active Record (Ruby on Rails) connection adapter for Amazon’s new Aurora DSQL database (essentially a Postgres-compatible serverless, distributed database service).

Samuel Cochran

  • IvorySQL 4.2 – A fully featured, open source Oracle compatible Postgres implementation, now with more Postgres 17.1 and 17.2 enhancements.

  • 🤖 pgai 0.4 – Timescale's tools to work with RAG and LLMs in Postgres.

  • node-pg-migrate 7.9 – Database migration management from Node.js.

  • ParadeDB 0.14 – Postgres for search and analytics.

  • pgBouncer 1.24.0 – Popular connection pooler.

🪙 A reward for contributing to Postgres

Over on LinkedIn, I noticed Postgres contributor Andrew Atkinson shared an image of the latest Postgres contributors coin he received (above). Such Contributor Gifts have been given out for many years to people who've contributed towards a major release of Postgres and you can see the latest recipients here.

Congratulations to everyone, and perhaps this could inspire others to get more involved with Postgres? It's a neat accolade! 😀