What awaits us in PostgreSQL 15?

PostgreSQL 15 Beta

After nearly 9 months since the creation of PostgreSQL 14, the developers of the popular database engine have decided to release PostgreSQL 15 in beta version.

PostgreSQL 14 was released at the end of September 2021. We published an article on our blog with a detailed list of changes in this Postgres release. Today, based on the beta release, we will take a closer look at what awaits us in PostgreSQL 15.

What is PostgreSQL?

PostgreSQL is a system for managing object-relational databases, developed at the Department of Computer Science at the University of California, Berkeley. The project was originally named POSTGRES, which evolved over the years into Postgres95 and then PostgreSQL. With more than two decades of development behind it, PostgreSQL is now the most advanced open source database. Due to the genesis of the solution and easier pronunciation, the commonly accepted alias for PostgreSQL is "Postgres" (rarely capitalized anymore).

PostgreSQL's position on the global market

The summary of Postgres' position on the market is a logical continuation of the statistics cited in the previous article. To estimate the popularity of Postgres, we used the same tools as last time - Google Trends. PostgreSQL is colored blue, Oracle Database is colored red, and MongoDB is colored yellow. In addition, on the chart you can see the points that mark the last survey we conducted. The graph shows the interest in each database over time. The peak of popularity of a phrase in Google searches is marked as "100". The value "50" means that the phrase was twice less popular.

PostgreSQL 15 beta

As you can see, PostgreSQL is growing its superiority over a closed database such as Oracle DB, whose popularity is steadily declining. MongoDB, as another representative of open database systems, has been holding steady in terms of interest for some time. In the case of PostgreSQL, an upward trend can be observed.

New features in PostgreSQL 15

Although it will still be some time before the release of Postgres stable version 15, it is important to remember that the beta version provides us with a glimpse of what the developers have managed to add and improve so far. It must be admitted that there is indeed a lot of it. From improving the developer's user experience of the system itself, to increasing the efficiency of database operations, to another increase in the scope of security. Below we will describe the most important changes and new features that appeared in PostgreSQL 15 beta.

Overall improvement in developer's experience

PostgreSQL developers have always made it a habit to meet the expectations of the community. This time in version 15 we will find new features that will make the system easier to use. One such new feature is MERGE - a standard SQL command for conditionally performing database write operations. Previously, to achieve the same thing as the new command, you had to use stored procedures.

Another equally important change is the addition of more regular expressions, such as regexp_count, regexp_instr, regexp_like, regexp_substr and range_agg. In addition, JSON support will be developed, including the ability to convert JSON data into a table.

Increased performance

PostgreSQL is improving its performance from version to version. Release 15 will feature an improved algorithm for sorting large data sets, especially those exceeding the work_mem parameter. Performance will also be improved for different types of queries, such as after the introduction of parallelization of SELECT DISTINCT or window functions statements using row_number(), rank() and count(). It should also be mentioned that in the new PostgreSQL we should expect performance improvements in the psql \copy command, which is responsible for the process of copying large amounts of data.

New standards for backup, archiving and compression

In the previous version of Postgres, the capability of LZ4 compression was added. Now in release 15 there will be the possibility to use another compression method called Zstandard (zstd). What follows is that the pg_basebackup tool, both on the server and client side, will also support Zstandard compression. The same is true for WAL files, which using wal_compression will be able to be configured to use the newly added data compression format. Speaking of WAL files, the new pg_walinspect module will be able to retrieve information on these files directly from SQL. A recovery_prefetch option will also be added to significantly speed up the data restoration process.

Logical replication with more features

PostgreSQL 15 will also positively surprise those using logical replication. It will be possible to filter by rows and columns, and to specify publishing all tables in a schema instead of in a database (as was the case until now). It is worth mentioning that in the new version of PostgreSQL it will be possible to specify the variable disable_on_error, which will allow a subscriber to stop logical replication if an error is detected in the main database.

Simplified administration

Administering a database always involves a lot of responsibility. Knowing this, Postgres developers aim to simplify the analysis, or increase the transparency of logs. The latest version of the engine will add jsonlog – which is a new format for logs, making them more structured. PostgreSQL version 15 will also save unusually slow checkpoint and autovacuum execution operations in logs by default. An interesting change may also be the storage of all server statistics in the server's shared memory, making it possible to disable a separate statistics collector process.

Increasing the level of security

Security is fundamental, so it is understandable that Postgres is constantly improving towards the most secure database management system. Version 15 introduces a new rule when creating a database in a cluster. Once the database is created, users who are not owners or administrators will not be able to create objects in the public schema.

The latest version of Postgres may also include support for so-called security invoker views, i.e. views that use the permissions of users making queries to them, instead of those of the view creator. This allows for broader access control while also improving security.

PostgreSQL 15 incoming

The recent release of PostgreSQL 15 beta, which was made public on May 19, 2022, reassures users that the latest stable version of Postgres will be available later this year. Considering the previous release dates of PostgreSQL database system 13 and 14, it can be assumed that, like its predecessors, version 15 will be announced this September.