The PostgreSQL Global Development Group has released PostgreSQL 14.4 to fix an issue that could cause silent data corruption when using the [`CREATE INDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-createindex.html) and [`REINDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-reindex.html) commands. Please see the following section for information on how to detect and correct silent data corruption in your indexes. This release also fixes over 15 bugs since PostgreSQL 14.3 was released in May. For the full list of changes, please review the [release notes](https://www.postgresql.org/docs/release/). This release is only for PostgreSQL 14. The PostgreSQL Global Development Group will make a scheduled update release on August 11, 2022 for all supported versions of PostgreSQL (10 - 14). Detect and Fix `CREATE INDEX CONCURRENTLY` / `REINDEX CONCURRENTLY` Corruption ------------------------------------------------------------------------------ PostgreSQL 14.4 fixes an issue with the [`CREATE INDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-createindex.html) and [`REINDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-reindex.html) that could cause silent data corruption of indexes. This issue may not have corrupted your indexes, but if you are unsure, we advise you to reindex using the instructions below. You can detect if a B-tree index (the default index type) has data corruption using the [`pg_amcheck`](https://www.postgresql.org/docs/current/app-pgamcheck.html) command with the `--heapallindexed` flag. For example: ``` pg_amcheck --heapallindexed database ``` If `pg_amcheck` detects corruption or if you ran `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` on any other index type (e.g. GiST, GIN, etc.), please follow the instructions below. Once you upgrade your system to PostgreSQL 14.4, you can fix any silent data corruption using `REINDEX CONCURRENTLY`. For example, if you have an index named `elephant_idx` that has data corruption, you can run the following command on PostgreSQL 14.4 to fix it: ``` REINDEX CONCURRENTLY elephant_idx; ``` You can use the [`reindexdb`](https://www.postgresql.org/docs/current/app-reindexdb.html) command to reindex all indexes across your cluster. `reindexdb` also has a `--jobs` flag that lets you run reindex operations in parallel. For example, to reindex your entire PostgreSQL cluster using `` parallel jobs, you can run the following command: ``` reindexdb --all --concurrently --jobs ``` Bug Fixes and Improvements -------------------------- This update fixes over 15 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Included in this release: * Several fixes for query plan memoization. * Fix queries in which a "whole-row variable" references the result of a function that returns a domain over composite type. * Fix "variable not found in subplan target list" planner error using a sub-`SELECT` that is referenced in a `GROUPING` function. * Fix error checking in `COPY FROM` when the database encoding is `SQL_ASCII` but the client encoding is a multi-byte encoding. * Report implicitly-created operator families (`CREATE OPERATOR CLASS`) to event triggers. * Prevent triggering `wal_receiver_timeout` on a standby during logical replication of large transactions. * Remove incorrect TLS private key file ownership check in libpq. * Prevent crash after server connection loss in `pg_amcheck`. For the full list of changes available, please review the [release notes](https://www.postgresql.org/docs/release/). 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. However, if you ran [`CREATE INDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-createindex.html) or [`REINDEX CONCURRENTLY`](https://www.postgresql.org/docs/current/sql-reindex.html) on PostgreSQL 14, you may need to take additional steps. Please review the "Detect and Fix `CREATE INDEX CONCURRENTLY` / `REINDEX CONCURRENTLY` Corruption" section for more details. Users who have skipped one or more update releases may need to run additional, post-update steps; please see the release notes for earlier versions for details. For more details, please see the [release notes](https://www.postgresql.org/docs/release/). PostgreSQL 10 EOL Notice ------------------------ PostgreSQL 10 will stop receiving fixes on November 10, 2022. If you are running PostgreSQL 10 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. 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/) * [Follow @postgresql on Twitter](https://twitter.com/postgresql)