HeadlinesBriefing favicon HeadlinesBriefing.com

PostgreSQL 19 Interactive Tour: New Features and Property Graphs

Hacker News •
×

PostgreSQL 19 is in beta with general availability expected around September or October 2026. This article serves as a hands-on companion to the official release notes, turning selected entries into runnable examples so users can see how new behaviors actually work. The features are based on the official release notes and PostgreSQL source code under the PostgreSQL License. Before exploring new features, it is important to note that this is not an exhaustive list; the official release notes should be consulted for completeness. All examples were run against PostgreSQL 19 beta 3 (released 2026-08-13), and the output reflects what that server actually printed.

Property graph queries are the headline feature of the release. PostgreSQL 19 implements SQL/PGQ, the property-graph part of SQL:2023. Users can declare a property graph over existing tables and query it with pattern matching instead of writing joins manually. Two ordinary tables can be set up as vertices and edges, allowing pattern matching with GRAPH_TABLE where directed edges are matched using -[...]-> syntax. The payoff is multi-hop patterns; chaining two edges retrieves friends-of-friends without a self-join, and an empty () means "some vertex I don't care to name." One important limitation is that variable-length paths are not supported; quantifiers like -[IS follows]->{1,3} parse but are rejected, requiring every hop to be spelled out. The GRAPH_TABLE query is rewritten into a plain relational query, meaning the planner, statistics, and index choices already known to the user still apply.

Temporal updates and deletes introduce the new FOR PORTION OF clause on UPDATE and DELETE statements. This clause allows specifying a valid time period for the operation, enabling more precise data manipulation within bitemporal tables. The feature integrates with system-versioned tables to ensure that updates and deletes only affect rows within the specified time range, improving data integrity for applications requiring historical tracking.

The release also enhances JSON and querying capabilities. New operators and functions improve the handling of JSON data types, allowing for more efficient querying and manipulation. These enhancements reduce the need for complex subqueries or external processing when working with semi-structured data, providing better performance and easier syntax for common JSON operations.