Postgres Weekly
Plus now() isn't actually now, graph queries on normal Postgres tables, and five locking surprises.

#​650 — May 27, 2026

Web Version

Together with  Memory Engine - Tiger Data

Postgres Weekly

PGConf.dev 2026: Why It Remains My Favorite Postgres Conference — A fantastic trip report from last week’s PGConf.dev event in Vancouver. Along with many pictures of the fun, Cary has detailed summaries of the talks he attended, topics raised at the unconference sessions, and even what happened at a 30th birthday for Postgres, complete with cake!

Cary Huang (High Go)

💡 Jeremy Schneider and Ashutosh Bapat have detailed trip reports too. “I’m very glad that I decided to go,” says Jeremy.

Your Agent Needs Better Context, Not a Bigger Prompt — Memory Engine stores engineering facts, decisions, and instructions in PostgreSQL so agents pull what's relevant before each task. No more loading the whole codebase. Semantic, keyword, temporal search. Inspectable, MCP-native. Free to start.

Memory Engine sponsor

🕒 How Soon is now()? — Did you know now() isn’t the 'current time' but when the transaction started? When that distinction matters, as it did for Oskar when a retry loop kept seeing the same frozen timestamp and never made progress, reach for clock_timestamp() instead.

Oskar Dudycz

💡 now() is equivalent to transaction_timestamp(). More on that in the docs.

5 Postgres Locking Behaviors That Trip People Up — Postgres’s lock manager is correct by design, but that correctness can still surprise you. A Postgres engineer walks through five counterintuitive locking behaviors that have caused real production outages, and how to avoid them.

Shinya Kato

XID Wraparound's Equally-Evil Twin — Monitoring transaction ID wraparound is a Postgres admin’s bread and butter, but MultiXact IDs, as consumed by concurrent row locks and foreign key checks, can fly completely under the radar. Richard explains how MXIDs accumulate, why they need freezing too, and shares queries to monitor them.

Richard Yen

💡 For a deeper dive into MultiXact internals and tuning, AWS has an in-depth guide.

📄 TOAST: Where Postgres Hides Big Values – Even more Postgres bread and butter. But crispier. Radim Marek

📄 How I Manage Persistent Multiplayer State Without Chaos – Keeping a multiplayer game consistent with “PostgreSQL holding the truth and Redis doing the fast work.” Julien Singler

📄 How to Profile a pgrx-Based Postgres Extensionpgrx is a framework for building Postgres extensions in Rust. Raynor Elgie

📰 Classifieds

🐘 Not enough time to watch 44 Postgres talks? Use the Ultimate Guide to POSETTE: An Event for Postgres & pick your favorites. Microsoft | AMD.


🚀 Join us live: pgEdge AI DBA Workbench walkthrough with Postgres Core Team Member Dave Page. Register now.


🔎 Introducing pg_search, a Postgres extension for Elasticsearch-quality full-text, vector and hybrid search in Postgres.

RELEASES AND CODE:

pgGraph: Graph Database Capabilities for Normal Postgres Tables — An ‘early alpha’ extension that adds a graph querying layer to ordinary relational tables without a separate database or new query language (no Cypher to learn). It’s early days but has some interesting ideas. GitHub repo.

Evokoa

🔎 plpgsql_check 2.9: A PL/pgSQL Code Checker — A specialized tool to find errors lurking in PL/pgSQL functions.

Pavel Stehule

pg_parse: A Postgres-Compatible SQL Parser for Rust — Leans on libpg_query so you get the same internal parse tree for SQL queries that Postgres itself does.

Paul Mason

  • PgQue 0.2 – Zero-bloat Postgres queue. One SQL file to install, pg_cron or pg_timetable to tick. v0.2 introduces first-party clients for Python, Go and TypeScript, cooperative consumers, pg_tle packaging, and more.

  • 📊 pg_statviz 1.1 – Minimalist extension and utility for time series analysis and visualization of Postgres internal statistics. (We love the new logo!)

Issue 649 #650