E.1. Postgres Pro Enterprise 12.20.1

Release date: 2024-09-05

E.1.1. Overview

This release is based on PostgreSQL 12.20 and Postgres Pro Enterprise 12.19.2. All changes inherited from PostgreSQL 12.20 are listed in PostgreSQL 12.20 Release Notes. As compared with Postgres Pro Enterprise 12.19.2, this version also provides the following changes:

  • Enhanced performance of segment search by implementing a new search strategy, allowing faster detection of the last segment.

  • Fixed the following issues in CFS:

    • Fixed issues related to processing of data structures in CFS by pg_rewind. Previously, pg_rewind did not fully support CFS, which could result in data corruption.

    • Fixed an issue in CFS, which could cause GC worker to fail with warning CFS GC failed to read block 0 of file X at position 0 size 0: Success. It happened due to incorrect handling of the first MB of the data file containing only zero pages.

  • Fixed a segmentation fault that could occur when a connection to the built-in connection pooler was reset before a new session was created in the backend.

  • Fixed an issue with freezing 64-bit multitransaction IDs, which could manifest itself in PANIC-level errors like xid XXX does not fit into valid range for base YYY during autovacuum.

  • Fixed an issue related to suboptimal handling of pd_prune_xid. This issue did not result in any significant operation problems but caused unnecessary page pruning, which might have produced extra WAL records.

  • Fixed an issue, which could manifest itself in errors like invalid FSM request size. The code was adjusted to reflect the changes in heap page structure, removing reliance on a constant related to maximum free heap page space where it is no longer applicable.

  • Fixed a bug that caused the optimizer to ignore columns from query conditions. Previously, when partially using a composite index, the number of rows could be overestimated, which led to an incorrect plan creation. The bug occurred due to a malfunction of the multi-column statistics elements.

  • Fixed a bug in ANALYZE that could occur because it was impossible to display the pg_statistic system catalog. For the fix to work, if your database has indexes with INCLUDE columns, after upgrading Postgres Pro, it is recommended to do another ANALYZE for these columns.

  • Upgraded the mchar extension to fix a bug that caused the mchar and mvarchar data types to ignore control characters during string comparison.

  • Upgraded pg_filedump to version 17.0, which provides optimizations and bug fixes. In particular, contents of meta pages for GIN and SP-GiST indexes are now displayed correctly, and an issue of lacking memory for encoding and decompression is resolved.

  • Upgraded pg_probackup to version 2.8.3 Enterprise, which provides the following bug fixes:

    • Fixed backup validation for databases containing an OID larger than 10^9. Previously, the validation status could be displayed incorrectly in such cases.

    • Fixed a bug that could occur when pg_probackup was run as a user included in the postgres group in case the database used CFS.

  • Fixed incorrect behavior of pg_wait_sampling when used with the extended query protocol.

E.1.2. Migration to Version 12.20.1

If you are upgrading from a Postgres Pro Enterprise release based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.

Important

When upgrading your high-availability cluster from Postgres Pro Enterprise versions 12.19.x or lower, first disable automatic failover if it was enabled and upgrade all the standby servers, then upgrade the primary server, promote a standby, and restart the former primary (possibly with pg_rewind).

If you take backups using pg_probackup and you have previously upgraded it to version 2.8.0 Enterprise or 2.8.1 Enterprise, make sure to upgrade it to version 2.8.2 Enterprise or higher and retake a full backup after upgrade, since backups taken using those versions might be corrupted. If you suspect that your backups taken with versions 2.8.0 or 2.8.1 may be corrupted, you can validate them using version 2.8.2.

If you are migrating to the current major version of Postgres Pro Enterprise using pg_upgrade, and you want to keep the existing visibility map representation in pageinspect, you should run the VACUUM command before the upgrade.

It is strongly recommended to avoid migrating a cluster with 32-bit transaction IDs to Postgres Pro Enterprise versions below 12.16.2, if there are multitransactions in your database, as it may cause data corruption.

If you have previously migrated to Postgres Pro Enterprise 12.7.1 or lower, you must run the REINDEX command to rebuild GIN indexes.

If you have previously migrated from Postgres Pro Enterprise versions 11 or 10, you must run the REINDEX command to rebuild B-tree indexes, except for unique, covering and system indexes. If you are migrating from these versions now, rebuilding such indexes is also recommended.

If you are upgrading from Postgres Pro Enterprise versions 12.6.x or lower and take PTRACK backups using pg_probackup, retake a full backup after upgrade.

To migrate from PostgreSQL, as well as Postgres Pro Standard or Postgres Pro Enterprise based on a previous PostgreSQL major version, see the migration instructions for version 12.