October 13, 2022 - The PostgreSQL Global Development Group today announced the release of PostgreSQL 15, the latest version of the world’s most advanced open source database.
PostgreSQL 15 builds on the performance improvements of recent releases with
noticeable gains for managing workloads in both local and distributed
deployments, including improved sorting. This release improves the developer
experience with the addition of the popular
MERGE
command, and adds
more capabilities 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, a PostgreSQL Core Team member. "PostgreSQL 15 highlights how, through open software development, we can deliver to our users a database that is great for application development and safe for their critical data."
PostgreSQL, an innovative data management system known for its reliability and robustness, benefits from over 25 years of open source development from a global developer community and has become the preferred open source relational database for organizations of all sizes.
In this latest release, PostgreSQL improves on its in-memory and on-disk
sorting algorithms,
with benchmarks showing speedups of 25% - 400% based on which data types are
sorted. Using row_number()
, rank()
, dense_rank()
, and count()
as
window functions
also have performance benefits in PostgreSQL 15. Queries using
SELECT DISTINCT
can now be
executed in parallel.
Building on work from the previous PostgreSQL release
for allowing async remote queries, the
PostgreSQL foreign data wrapper,
postgres_fdw
,
now supports
asynchronous commits.
The performance improvements in PostgreSQL 15 extend to its archiving 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
certain operating systems, PostgreSQL 15 adds support to
prefetch pages referenced in WAL
to help speed up recovery times. PostgreSQL's built-in backup command,
pg_basebackup
, now
supports server-side compression of backup files with a choice of gzip, LZ4, and
zstd. PostgreSQL 15 includes the ability to use
custom modules for archiving,
which eliminates the overhead of using a shell command.
PostgreSQL 15 includes the SQL standard
MERGE
command.
MERGE
lets you write conditional SQL statements that can include INSERT
,
UPDATE
, and DELETE
actions within a single statement.
This latest release adds
new functions for using regular expressions
to inspect strings: regexp_count()
, regexp_instr()
, regexp_like()
, and
regexp_substr()
. PostgreSQL 15 also extends the range_agg
function to
aggregate
multirange
data types,
which were introduced in the
previous release.
PostgreSQL 15 lets users
create views that query data using the permissions of the caller, not the view creator.
This option, called security_invoker
, adds an additional layer of protection
to ensure that view callers have the correct permissions for working with the
underlying data.
PostgreSQL 15 provides more flexibility for managing logical replication. This release introduces row filtering and column lists for publishers, letting users choose to replicate a subset of data from a table. PostgreSQL 15 adds features to simplify conflict management, including the ability to skip replaying a conflicting transaction and to automatically disable a subscription if an error is detected. This release also includes support for using two-phase commit (2PC) with logical replication.
PostgreSQL 15 introduces a new logging format:
jsonlog
.
This new format outputs log data using a defined JSON structure, which allows
PostgreSQL logs to be processed in structured logging systems.
This release gives database administrators more flexibility in how users can
manage PostgreSQL configuration, adding the ability to grant users permission to
alter server-level configuration parameters. Additionally, users can now search
for information about configuration using the \dconfig
command from the
psql
command-line tool.
PostgreSQL server-level statistics are now collected in shared memory, eliminating both the statistics collector process and periodically writing this data to disk.
PostgreSQL 15 makes it possible to make an ICU collation the default collation for a cluster or an individual database.
This release also
adds a new built-in extension,
pg_walinspect
, that
lets users inspect the contents of write-ahead log files directly from a SQL
interface.
PostgreSQL 15 also
revokes the CREATE
permission from all users
except a database owner from the public
(or default) schema.
PostgreSQL 15 removes both the long-deprecated "exclusive backup" mode and support for Python 2 from PL/Python.
PostgreSQL is the world's most advanced open source database, with a global community of thousands of users, contributors, companies and organizations. Built on over 35 years of engineering, starting at the University of California, Berkeley, PostgreSQL has continued with an unmatched pace of development. PostgreSQL's mature feature set not only matches top proprietary database systems, but exceeds them in advanced database features, extensibility, security, and stability.