PostgreSQL 15 builds on the performance improvements of recent versions, with significant gains in managing workloads in both local and distributed deployments, including improved sorting. This release improves the developer experience by adding the popular MERGE command, and adds more functionality for observing the state of the database. “The PostgreSQL developer community continues to build features that simplify running high-performance data workloads while improving the developer experience,” said Jonathan Katz, PostgreSQL core team member. “PostgreSQL 15 highlights how open software development can provide our users with A database that is ideal for application development and secures its critical data.”
PostgreSQL is an innovative data management system known for its reliability and robustness, benefiting from more than 25 years of open source development by a global developer community, and has become the open source relational database of choice for organizations of all sizes.
Improved sort performance and compression
In this latest release, PostgreSQL has improved its in-memory and on-disk sorting algorithms, with benchmarks showing speedups ranging from 25% to 400%, depending on the data type being sorted. In PostgreSQL 15, there is also a performance benefit to using row_number() , rank() , dense_rank() , and count() as window functions. Queries using using SELECT DISTINCT can now be executed in parallel.
Building on work from previous PostgreSQL versions allowing asynchronous remote queries, the PostgreSQL foreign data wrapper, postgres_fdw now supports asynchronous commits.
The performance improvements in PostgreSQL 15 extend to its archive and backup facilities. PostgreSQL 15 adds support for LZ4 and Zstandard (zstd) compression to write-ahead log (WAL) files, which can have both space and performance benefits for certain workloads. On some operating systems, PostgreSQL 15 added support for prefetching pages referenced in the WAL to help speed up recovery times. PostgreSQL’s built-in backup command pg_basebackup now supports server-side compression of backup files, with options for gzip, LZ4, and zstd. PostgreSQL 15 includes the ability to use custom modules for archiving, which removes the overhead of using shell commands.
Expressive developer features
PostgreSQL 15 includes the SQL standard MERGE command. MERGE allows you to write conditional SQL statements that can contain INSERT, UPDATE, and operations in a single statement. DELETE
This latest release adds new functions for checking strings using regular expressions: regexp_count(), regexp_instr(), regexp_like(), and regexp_substr(). PostgreSQL 15 also extends the range_agg functionality to aggregate the multirange datatype, which was introduced in the previous Introduced in a version.
PostgreSQL 15 allows users to create views that query data with the privileges of the caller rather than the view creator. This option, called security_invoker , adds an extra layer of protection to ensure view callers have the correct permissions to use the underlying data.
More logical replication options
PostgreSQL 15 provides greater flexibility for managing logical replication. This release introduces row filtering and column lists for publishers, allowing users to select subsets of data in replicated tables. PostgreSQL 15 adds features to simplify conflict management, including the ability to skip replaying conflicting transactions and automatically disable subscriptions when errors are detected. This release also supports the use of two-phase commit (2PC) with logical replication.
Logging and configuration enhancements
PostgreSQL 15 introduces a new logging format: jsonlog. This new format outputs log data using a defined JSON structure, allowing PostgreSQL logs to be processed in a structured logging system.
This release gives database administrators more flexibility in how users manage PostgreSQL configuration, adding the ability to grant users permission to change server-level configuration parameters. \dconfig Additionally, users can now search for information about configuration using the command psql command in the line tool.
other notable changes
PostgreSQL server-level statistics are now collected in shared memory, eliminating the statistics collection process and periodic writing of this data to disk.
PostgreSQL 15 makes it possible to make the ICU collation the default collation for a cluster or individual databases.
This release also adds a new built-in extension, pg_walinspect, which enables users to inspect the contents of write-ahead log files directly from the SQL interface.
PostgreSQL 15 also revokes the CREATE privilege from the (or default) schema for all users except the database owner. public
PostgreSQL 15 removes the long-deprecated “exclusive backup” mode and support for Python 2 from PL/Python.