#​525 — October 11, 2023

Web Version

✍️ Due to being on the road at a conference, this is going to be a compact and bijou issue – but maybe you'll prefer it that way! Back to full steam next week 😉
Peter Cooper, your editor

Together with  pgAnalyze

Postgres Weekly

Postgres: The Next Generation? — It’s not often that op-eds on Postgres touch on the demographics of the core contributors, but James points to evidence that the majority of work on Postgres is done by a small group with a high median age. This isn’t a bad thing at all, but suggests efforts should be placed in encouraging new folks to become involved in maintaining the project.

James Governor

If you want to join the 'next generation' of Postgres contributors, a place to start is the wiki's "So, you want to be a developer?" resource, as well as Andrey Borodon's ▶️ 15 minute walkthrough of implementing a simple Postgres patch.

🔎 pg_bm25: 'Elastic'-Quality Full Text Search Inside Postgres — If you’ve run into some of the limitations with Postgres’s built-in full text search options, pg_bm25 is a new, Rust-based extension that introduces the BM25 index type which allegedly “indexes 50 seconds faster than tsvector and ranks results 20x faster.” It can be added to a typical Postgres setup, but is also part of ParadeDB, a Postgres-based ElasticSearch alternative from the same creators.


Webinar: Automating Index Selection Using Constraint Programming — Get an introduction to a new approach for automatically determining which set of indexes to create for a given Postgres query workload, based on objectives chosen by the developer or DBA. Sign up for our webinar on Nov 15th, 2023 at 09:30 AM Pacific Time.

pganalyze sponsor

A New Chapter for Transactions in Postgres — A mildly misleading but factually true headline, as this is literally a new chapter in the official Postgres documentation focusing on transaction processing internals. Bruce Momjian notes that while these docs are new, the principles apply to older Postgres versions too.

PostgreSQL Documentation

New Functions to Validate User Input — Postgres 16 introduced the pg_input_is_valid function which tests if a given string is a valid input for casting to a specified data type, and the pg_input_error_info function which does the same but shares more detail about failures.

Luca Ferrari

How to Set Up a Postgres Cluster using pg_cirrus on AWSpg_cirrus is a tool for setting up a 3-node highly available Postgres cluster on Linux systems.

Salman Ahmed

Creating a Read-Only Postgres User — Golden oldie.
Jonathan S. Katz

Getting Started with Psycopg2: Python's Postgres Adapter
Tristen Raab

Code and Tools

pg_jsonschema 0.2: JSON Schema Validation Extension — Postgres’s support for JSON / JSONB columns is second to none, but what if you want to validate the structure of JSON data? JSON Schema provides a way to define JSON-based formats and this extension lets you verify documents against them.


Payload 2.0: Headless Node.js CMS, Now Supporting Postgres — There’s much to like about Payload if you need a Node-based headless CMS including a customizable React-based admin system, GraphQL or REST APIs, flexible auth and file upload systems, etc. v2.0's headline feature is the introduction of Postgres support (it exclusively used MongoDB before).

James Mikrut