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)
+or [`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.
Detect and Fix `CREATE INDEX CONCURRENTLY` / `REINDEX CONCURRENTLY` Corruption
------------------------------------------------------------------------------
-PostgreSQL 14.4 fixes an issue with the
+PostgreSQL 14.4 fixes an issue with
[`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.
+that could cause silent data corruption of indexes. Prior to the fix,
+`CREATE INDEX CONCURRENTLY` and `REINDEX CONCURRENTLY` could build indexes that
+would have missing entries, causing `SELECT` queries that used the index to not
+find certain rows. 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)
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.
+* Report implicitly-created operator families (generated by
+`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.