E.2. Postgres Pro Enterprise 15.8.1

Release Date: 2024-09-09

E.2.1. Overview

This release is based on PostgreSQL 15.8 and Postgres Pro Enterprise 15.7.2. All changes inherited from PostgreSQL 15.8 are listed in PostgreSQL 15.8 Release Notes. As compared with Postgres Pro Enterprise 15.7.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.

  • Implemented the interaction of the PASSWORD_GRACE_TIME profile parameter with the VALID UNTIL role attribute. Now if both of them are set, the warning about password expiration will be displayed.

  • Prevented potential authentication delays due to locking by not updating role's last login time if the role's profile USER_INACTIVE_TIME is set to unlimited (see Section 54.40 for details).

  • Optimized the logic of pruning, which is now delayed until a page is nearly full, rather than relying solely on the fill factor. This reduces the frequency of pruning during UPDATE operations, leading to better performance in tables with frequent updates.

  • Fixed an issue with statistics handling in autonomous transactions. Previously, statistics changes were only saved if both the autonomous transaction and the parent transaction were committed successfully. This oversight was usually pretty harmless since no reported failures have been traced.

  • Fixed an issue with nested loop parameters that forced Memoize to constantly purge the cache. This bugfix speeds up query execution.

  • 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.

  • Added support for ALT 11.

  • Upgraded the PostgreSQL ODBC driver to version 16.00.0005.

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

  • Implemented the ability to slow down transaction execution on the donor node in multimaster using the multimaster.tx_delay_on_slow_catchup configuration parameter. This is useful when a lagging node is catching up to the donor node and cannot apply changes as quickly.

  • 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_proaudit to provide the following optimizations and bug fixes:

    • Improved performance and added the pg_proaudit.max_rules_count parameter, which allows specifying the maximum number of rules allowed.

    • Corrected support of database names including uppercase symbols by the pg_proaudit_set_rule function.

  • 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.

  • Upgraded pgvector to version 0.7.4.

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

  • Upgraded sr_plan to provide new features and optimizations. Notable changes are as follows:

    • Added the sr_plan.sandbox configuration parameter that allows testing and analyzing queries without affecting the node operation by reserving a separate area in shared memory for the nodes.

    • Added three configuration parameters sr_plan.auto_capturing, sr_plan.max_captured_items, and sr_plan.max_consts_len that allow you to configure query capturing.

    • Added the sr_captured_queries view that displays information about queries captured in sessions.

    • Added the sr_captured_clean function that removes all records from the sr_captured_queries view.

    • Renamed the sr_plan.max configuration parameter to sr_plan.fs_ctr_max.

    • Replaced queryid with sql_hash to reflect the new query identification logic.

E.2.2. Migration to Version 15.8.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 15.7.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.

Starting from Postgres Pro Enterprise 15.5.1, the privileges of CREATEROLE are restricted, and modification of other roles requires the role requesting the change to have the ADMIN OPTION permission.

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

When upgrading to Postgres Pro Enterprise versions starting with 15.3.1, make sure to upgrade pg_probackup Enterprise to version 2.6.4 or higher since lower versions are incompatible with these Postgres Pro Enterprise versions.

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 15.