The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 16.3, 15.7, 14.12, 13.15, and 12.19. This release fixes over 55 bugs reported over the last several months. For the full list of changes, please review the [release notes](https://www.postgresql.org/docs/release/). PostgreSQL 12 EOL Notice ------------------------ PostgreSQL 12 will stop receiving fixes on November 14, 2024. If you are running PostgreSQL 12 in a production environment, we suggest that you make plans to upgrade to a newer, supported version of PostgreSQL. Please see our [versioning policy](https://www.postgresql.org/support/versioning/) for more information. Bug Fixes and Improvements -------------------------- This update fixes over 55 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 16. Some of these issues may also affect other supported versions of PostgreSQL. * Fix [`INSERT`](https://www.postgresql.org/docs/current/sql-insert.html) from multiple [`VALUES`](https://www.postgresql.org/docs/current/sql-values.html) rows into a target column that is a domain over an array or composite type. including requiring the [SELECT privilege](https://www.postgresql.org/docs/current/sql-grant.html) on the target table when using [`MERGE`](https://www.postgresql.org/docs/current/sql-merge.html) when using `MERGE ... DO NOTHING`. * Per the SQL standard, throw an error if a target row in `MERGE` joins to more than one source row during a modification. * Fix incorrect pruning of `NULL` partition when a table is partitioned on a boolean column and the query has a boolean `IS NOT` clause. * Make [`ALTER FOREIGN TABLE ... SET SCHEMA`](https://www.postgresql.org/docs/current/sql-alterforeigntable.html) move any owned sequences into the new schema. * [`CREATE DATABASE`](https://www.postgresql.org/docs/current/sql-createdatabase.html) now recognizes `STRATEGY` keywords case-insensitively. * Fix how [EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html) counts heap pages during bitmap heap scan to show all counted pages, not just ones with visible tuples. * Avoid deadlock during removal of orphaned temporary tables. * Several fixes for [`VACUUM`](https://www.postgresql.org/docs/current/sql-vacuum.html), including one that can reduce unnecessary I/O. * Several query planner fixes. * Added optimization for certain operations where an installation has thousands of roles. * Fix confusion for SQL-language procedures that returns a single composite-type column. * Fix incorrect rounding and overflow hazards in [`date_bin()`](https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-BIN). * Detect integer overflow when adding or subtracting an [interval](https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-INPUT) to/from a timestamp. * Throw an error if an index is accessed while it is being reindexed. * Fix several race conditions with logical replication, including determining if a table sync operation is required. * Disconnect if a new server session's client socket cannot be put into non-blocking mode. * [`initdb -c`](https://www.postgresql.org/docs/current/app-initdb.html) now matches parameter names case-insensitively. * Avoid leaking a query result from [`psql`](https://www.postgresql.org/docs/current/app-psql.html) after the query is cancelled. * Fix how PL/pgSQL parses of [single-line comments](https://www.postgresql.org/docs/current/plpgsql-structure.html) (`-- style comments`) following expression. Updating -------- All PostgreSQL update releases are cumulative. As with other minor releases, users are not required to dump and reload their database or use `pg_upgrade` in order to apply this update release; you may simply shutdown PostgreSQL and update its binaries. Users who have skipped one or more update releases may need to run additional post-update steps; please see the release notes from earlier versions for details. For more details, please see the [release notes](https://www.postgresql.org/docs/release/). Links ----- * [Download](https://www.postgresql.org/download/) * [Release Notes](https://www.postgresql.org/docs/release/) * [Security](https://www.postgresql.org/support/security/) * [Versioning Policy](https://www.postgresql.org/support/versioning/) * [PostgreSQL 16 Release Announcement](https://www.postgresql.org/about/press/) * [Follow @postgresql on Twitter](https://twitter.com/postgresql) * [Donate](https://www.postgresql.org/about/donate/) If you have corrections or suggestions for this release announcement, please send them to the _pgsql-www@lists.postgresql.org_ public [mailing list](https://www.postgresql.org/list/).