// HACKER NEWS — CYBERSECURITY
PostgreSQL 19 Interactive Tour
PostgreSQL 19 is in beta, with general availability expected around September or October 2026, so it’s a good time to get a head start on what’s new. The official release notes are the authoritative record: meticulously assembled, complete down to the commit and the contributors behind each change. This article is a hands-on companion to them, taking a selection of those entries and turning each into a runnable example so you can see how the new behavior actually works.
Before we start digging into the new features, let’s set the context.
This article is based on the official release notes and the PostgreSQL source code, licensed under the PostgreSQL License. This is not an exhaustive list; see the official release notes for that.
Every example below was run against PostgreSQL 19 beta 3 (released 2026-08-13) and the output is what that server actually printed.
Links point to the documentation (𝗗), the most relevant commits (𝗖), and authors (𝗔) for each feature; check them out for motivation, usage, and implementation details. The authors (𝗔) are the people credited in the release notes for the feature, which usually means the patch authors rather than a single main author.
With the context set, let’s start exploring the new features.
This is the headline of the release. PostgreSQL 19 implements SQL/PGQ, the property-graph part of SQL:2023. You declare a property graph over existing tables, then query it with pattern matching instead of writing the joins yourself.
Nothing is copied: social is a view-like object that says “person rows are vertices, follows rows are edges”. Now you can match patterns with GRAPH_TABLE, where -[...]-> is a directed edge:
The payoff is multi-hop patterns. Chaining two edges gives you friends-of-friends without a self-join, and an empty () means “some vertex I don’t care to name”:
There’s no new execution engine here, and that’s the point. GRAPH_TABLE is rewritten into a plain relational query, so the planner, the statistics, and the index choices you already know all still apply: