Latest in branch 17
17.10
Released 11 May 2026
(3 days ago)
SoftwarePostgreSQL
Branch17
Status
Supported
Initial release17.0
23 Sep 2024
(1 year ago)
Latest release17.10
11 May 2026
(3 days ago)
End of life08 Nov 2029
(Ends in 3 years, 5 months)
Release noteshttps://www.postgresql.org/docs/17/release.html
Source codehttps://github.com/postgres/postgres/tree/REL_17_10
Documentationhttps://www.postgresql.org/docs/17/
Downloadhttps://www.postgresql.org/download/
PostgreSQL 17 ReleasesView full list

What Is New in PostgreSQL 17

PostgreSQL 17 delivers a substantial update focused on performance, replication, and developer productivity. This release builds on the strong foundation of previous versions with optimizations that matter for large-scale deployments and everyday queries.

Category Key Changes
Performance Parallel query enhancements, aggregate pushdown, and system catalog optimizations.
Replication & Backup Logical replication from standbys, new pg_wait_until_replay_caughtup() function.
SQL & Developer Features New ANY and ALL array comparison operators, pg_stat_statements normalization.
Security SCRAM-SHA-256 channel binding, client parameter encryption.
Monitoring New pg_stat_io view for detailed I/O statistics.
Deprecated/Removed Deprecation of the recovery.conf file.

How does PostgreSQL 17 improve query performance?

The performance gains in PostgreSQL 17 are significant for both analytical and transactional workloads. A major improvement is the ability to push down aggregates to foreign servers, which drastically reduces the amount of data that needs to be transferred for queries involving foreign data wrappers.

Parallel query execution sees important refinements. The system can now use a parallel plan for REFRESH MATERIALIZED VIEW and for queries containing UNION, provided no row ordering is required. This allows modern multi-core hardware to be utilized more effectively for these operations.

Under the hood, system catalog accesses have been optimized. This reduces the overhead for many internal operations, making the entire system feel more responsive, especially under load.

What are the new replication capabilities?

Logical replication gets a powerful new feature: the ability to subscribe to a physical replication standby server instead of just the primary. This allows you to offload the replication workload from your primary server, improving its performance for client applications.

For administrators, a new wait function, pg_wait_until_replay_caughtup(), simplifies the process of managing standby servers. It allows a script to pause execution until a standby has replayed all the WAL it has received, which is crucial for controlled failover and maintenance procedures.

The longstanding recovery.conf file has been fully removed. All its parameters are now set in the main postgresql.conf file, which streamlines configuration management for replication setups.

What new SQL features can developers use?

Developers gain more expressive power with new array comparison operators. You can now use = ANY and <> ALL for comparing a value to an array, which can lead to more intuitive and concise SQL queries.

The pg_stat_statements extension now normalizes the planning and execution time for prepared statements. This provides a much clearer picture of actual performance by factoring out the overhead of planning, making it easier to identify truly slow queries.

Full text search is now supported in the pg_dump and pg_restore commands. This ensures that your text search configurations are properly included in your database backups.

How is security enhanced in this release?

Authentication security is strengthened with support for channel binding in SCRAM-SHA-256. This provides protection against relay attacks, making secure password-based authentication even more robust.

For connection privacy, the new encrypted option for the client_connection_defaults parameter ensures that certain connection parameters are only sent over encrypted connections, preventing them from being exposed on insecure networks.

What new monitoring tools are available?

A brand new statistics view, pg_stat_io, provides deep insight into the database's I/O behavior. It breaks down read and write operations by context (e.g., bulkread, bulkwrite, vacuum), helping you pinpoint the exact source of I/O pressure.

This level of detail is a game-changer for performance tuning. You can finally see if your I/O wait times are being caused by VACUUM, checkpointing, or regular client queries, allowing for targeted optimizations.

FAQ

Can I now use a standby server to publish logical replication changes?
Yes, this is a major new feature. You can create a logical replication subscription that connects to a physical replication standby, offloading this work from your primary server.

What is the practical benefit of aggregate pushdown?
When querying a foreign table, the aggregate (like COUNT(*) or SUM(value)) can be computed on the remote server. Only the final result is sent back, massively reducing network transfer and speeding up the query.

Is the recovery.conf file still used?
No, it has been completely removed. All parameters that were in recovery.conf must now be set in the main postgresql.conf file, which simplifies configuration.

How do the new ANY/ALL array operators work?
They provide a more standard syntax for array comparisons. For example, value = ANY (array) is equivalent to value IN (SELECT unnest(array)) but is more readable and often performs better.

What does pg_stat_io help me diagnose?
It breaks down I/O statistics by operation context. You can see exactly how much I/O is caused by VACUUM, checkpoints, or regular backends, making it much easier to identify the root cause of I/O bottlenecks.

Releases In Branch 17

VersionRelease date
17.1011 May 2026
(3 days ago)
17.923 Feb 2026
(2 months ago)
17.809 Feb 2026
(3 months ago)
17.710 Nov 2025
(6 months ago)
17.611 Aug 2025
(9 months ago)
17.505 May 2025
(1 year ago)
17.417 Feb 2025
(1 year ago)
17.310 Feb 2025
(1 year ago)
17.218 Nov 2024
(1 year ago)
17.111 Nov 2024
(1 year ago)
17.023 Sep 2024
(1 year ago)