#​642 — April 1, 2026

Web Version

Together with  Tiger Data logo

Postgres Weekly

pg_textsearch 1.0: A BM25 Search Engine Using Postgres Pages — Real BM25 scoring built in C and running on top of Postgres’s own storage layer, so you can create indexes, write queries, and get relevance-ranked results out of the box. v1.0 takes things from preview to production with parallel index builds and disk-based segments (rather than memory only, as in pre-1.0). GitHub repo.

Todd J. Green (Tiger Data)

💡 Other BM25-based options are available, including ParadeDB (which uses Tantivy behind the scenes) and VectorChord-BM25. A head-to-head comparison and benchmark of them would be great to see.

Most Teams Hit a Wall With Analytics on Postgres — Postgres can scale analytics. It just needs help. Instead of a second database, add TimescaleDB: hypertables, 95% compression, and continuous aggregates. No pipelines, no sync lag, no drift. Analytics on live data. Start building for free.

Tiger Data (creators of TimescaleDB) sponsor

High Memory Usage in Postgres is Good, Actually — High memory usage in Postgres is often a sign the system is simply doing its job, keeping frequently accessed data close at hand. The thing to worry about is memory pressure, and Simeon explains how to tell the two apart.

Simeon Griggs (PlanetScale)

IN BRIEF:

Postgres 19 Adding Built-in JSON Export via COPY — In the next version of Postgres, COPY ... TO ... WITH JSON will let you export query results or table data directly as a stream of JSON objects.

Hubert Lubaczewski

pg_service.conf: The Spell Your Team Forgot to Learnpg_service.conf is a bit like ssh’s config file in that it lets you bundle together connection parameters into a single service name, so you can do things like psql service=prod. A further cute trick is to have different files for each environment and switch between them while keeping your logical names the same.

Lætitia Avrot

The Real Cost of Random I/O — Is the random_page_cost default of 4.0 still right after 25 years? Vondra runs controlled experiments with direct I/O on flash storage and finds the answer is more nuanced than “just set it to 1.0.”

Tomas Vondra

📄 The Hidden Behavior of plan_cache_mode – Did you know the query planner can change the execution plan for a prepared statement after several executions? Richard Yen

📄 A Survey of Database Schema Migration Approaches in 2026 Jeremy Schneider

▶️ How to Implement the Outbox Pattern in Go and Postgres Package Main

📰 Classifieds

Spot N+1 queries before your users do. AppSignal auto-monitors Postgres performance with real-time alerts. Try Free.


👾 A conference for engineers who did the big rewrite - and lived to tell the story. BugBash 2026, April 23-24, Washington DC.

RELEASES AND CODE:

pgmetrics: Collect and Report Stats from Running Postgres Servers — A Go app (so no dependencies) that collects over 350 different metrics and produces reports like this one. As well as being useful at a glance, the format is perfect for LLMs to analyze too.

RapidLoop

pg_regresql: Truly Portable Postgres Statistics — An extension that forces the planner to use pg_class statistics instead of reading actual file sizes, so that injected production statistics survive intact in a small dev/test database.

Radim Marek

Multigres Operator: A Kubernetes Operator for MultigresMultigres is a Vitess-inspired horizontally-scalable/sharded Postgres architecture and this operator brings it into Kubernetes. Note that “It is not production-ready as of today, but we’re moving fast - expect it to be ready in a few months.”

Supabase

  • pg_ivm 1.14 – Makes materialized views up-to-date using incremental changes.

  • pgschema 1.8 – Terraform-style declarative schema migrations for Postgres.

  • pg-boss 12.15.0 – Postgres-powered job queue for Node.js apps.