Latest in branch 16
16.14
Released 11 May 2026
(2 days ago)
SoftwarePostgreSQL
Branch16
Status
Supported
Initial release16.0
11 Sep 2023
(2 years ago)
Latest release16.14
11 May 2026
(2 days ago)
End of life09 Nov 2028
(Ends in 2 years, 5 months)
Release noteshttps://www.postgresql.org/docs/16/release.html
Source codehttps://github.com/postgres/postgres/tree/REL_16_14
Documentationhttps://www.postgresql.org/docs/16/
Downloadhttps://www.postgresql.org/download/
PostgreSQL 16 ReleasesView full list

What Is New in PostgreSQL 16

PostgreSQL 16 delivers significant enhancements across performance, monitoring, security, and SQL capabilities. This release focuses on making complex workloads faster and easier to manage.

Category Key Changes
Performance Parallel query on more operations, bulk loading improvements, better optimizer logic
Monitoring Enhanced system statistics, new wait events, improved pg_stat_io
Security More predefined roles, client connection control, SELinux support
SQL & Replication New SQL/JSON syntax, logical decoding from standby, pg_walinspect
Developer Features New aggregate functions, ANY/ALL support, ICU collation customization

How does PostgreSQL 16 improve query performance?

The optimizer and executor are smarter about parallelization and data access. You'll see the biggest gains on analytical queries and bulk data operations.

More types of queries can now use parallel execution, including FULL and RIGHT OUTER JOINs. The system also does a better job of pushing restrictive WHERE clauses down to foreign data wrappers, which cuts down on the amount of data that needs to be transferred.

For bulk loading, COPY is now faster because it can process data in parallel. In practice, this means your data warehouse ETL jobs and initial data imports will complete significantly quicker.

What new monitoring capabilities were added?

Visibility into system I/O and backend activity got a major upgrade. The new pg_stat_io view is the star, giving you a detailed breakdown of read/write operations.

You can now see which backends are waiting on which specific resources thanks to new wait events for replication slots and extension. This makes it much easier to pinpoint exactly what's causing a slowdown during heavy load.

The background writer process also reports more statistics, so you can fine-tune your checkpoints and writeback configuration based on actual observed behavior rather than guesswork.

How is security strengthened in this release?

PostgreSQL 16 adds more granular control over who can see what in the system. New predefined roles like pg_read_all_data and pg_write_all_data let you grant broad read/write permissions without making someone a superuser.

Client connections can now be forced to use SSL/TLS or specific GSSAPI encryption types directly in pg_hba.conf using the client_encoding and gssencmode options. This matters because it enforces encryption policy at the connection level instead of relying on client configuration.

For SELinux environments, the server now supports security labels, integrating directly with your system's mandatory access control policies.

What SQL and replication features should I try first?

The new SQL/JSON constructors and predicates are incredibly useful for working with JSON data. You can now use standard syntax like JSON_ARRAY() and JSON_ARRAYAGG() instead of PostgreSQL-specific functions.

Logical replication now supports decoding from standby servers, which means you can offload the decoding overhead from your primary server. The new pg_walinspect function lets you examine WAL contents directly through SQL, which is fantastic for debugging replication issues.

For developers, the ability to use ANY and ALL with subqueries on the right-hand side of comparisons brings PostgreSQL closer to full SQL standard compliance and makes certain types of queries much more intuitive to write.

FAQ

Can I use parallel COPY to load data faster?
Yes, COPY ... FROM now uses multiple workers when loading data into a table, significantly speeding up bulk insert operations. This works automatically when the parallel_workers storage parameter is set on the target table.

What's the easiest way to see I/O statistics now?
Query the new pg_stat_io view. It breaks down reads, writes, extends, and bytes by backend type and context, giving you a complete picture of where your I/O pressure is coming from.

How do the new predefined roles work?
Roles like pg_read_all_data and pg_write_all_data can be granted to users who need to read or modify all data in the system without giving them full superuser privileges that would allow them to modify system catalogs or change configuration.

Can I now force clients to use encrypted connections?
Yes, in pg_hba.conf you can now specify client_encoding=require to force TLS encryption or use gssencmode to require GSSAPI encryption for specific connection entries.

What's the benefit of logical decoding from standby?
This feature lets you offload the CPU-intensive work of decoding WAL to a standby server, reducing the load on your primary database while still maintaining your logical replication streams.

Releases In Branch 16

VersionRelease date
16.1411 May 2026
(2 days ago)
16.1323 Feb 2026
(2 months ago)
16.1209 Feb 2026
(3 months ago)
16.1110 Nov 2025
(6 months ago)
16.1011 Aug 2025
(9 months ago)
16.905 May 2025
(1 year ago)
16.817 Feb 2025
(1 year ago)
16.710 Feb 2025
(1 year ago)
16.618 Nov 2024
(1 year ago)
16.511 Nov 2024
(1 year ago)
16.405 Aug 2024
(1 year ago)
16.306 May 2024
(2 years ago)
16.205 Feb 2024
(2 years ago)
16.106 Nov 2023
(2 years ago)
16.011 Sep 2023
(2 years ago)