E.1. Postgres Pro Enterprise 14.22.1

Date: 2026-03-17

E.1.1. Overview

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

  • Reduced the amount of debugging information sent to the client or written to the server log. DEBUG1 severity level messages about operations with temporary tables are no longer returned.

  • Introduced the following changes to the implementation of crash_info:

    • Changed the name format of crash_info output files to specify date and time with microseconds.

    • Fixed a bug that could occur when trying to write a query text to crash_info output files.

  • Implemented the following enhancements and bug fixes for CFS:

    • Improved CFS performance that now uses compression contexts with the default compression library of zstd.

    • Changed the behavior of the cfs_compression_ratio function. Now the function returns NaN for uncompressed relations.

  • Fixed an issue with upgrading the Postgres Pro Enterprise cluster using pg_upgrade. When upgrading, some free space map files could contain zeroed pages and, therefore, the FSM should have been considered damaged. Now such pages are not copied to the new cluster.

  • Fixed an issue for unlogged tables with page conversion from 32-bit to 64-bit format after migration to Postgres Pro Enterprise using pg_upgrade. When a page was converted only in memory, without writing it to disk, and autovacuum removed corresponding pg_xact segments at the same time, transaction status in tuples was lost, leading to errors on access.

  • Fixed an issue where the messages generated during lock capture contained incorrect 64-bit XIDs.

  • Fixed an issue, which could cause autovacuum to cycle through some databases while failing to vacuum others. This happened due to autovacuum soft limits, which could be set by the vacuum_freeze_table_age and vacuum_multixact_freeze_table_age configuration parameters. These limits were removed. They are no longer required, since the autovacuum_freeze_max_age and autovacuum_multixact_freeze_max_age parameters can now be changed without restarting the server.

  • Fixed an issue that could occur during collection of vacuum interruption statistics for relations and indexes shared across all databases in a cluster.

  • Fixed a bug that caused daterange_inclusive to fail when processing empty ranges.

  • Ended support for CentOS 7, RHEL 7, Oracle Linux 7, AlterOS 7.5, Debian 10, ALT 8/9, and SLES 12.

  • Fixed a memory leak in the auto_dump extension.

  • Fixed a bug in postgres_fdw that could occur when accumulating results of UPDATE ... RETURNING and DELETE ... RETURNING commands. Previously, the connection state of the remote server would not update after the command execution.

  • Upgraded multimaster to provide the following enhancements:

    • Enhanced the mechanism of synchronization point creation when adding a new node to the cluster that fixes the potential issue of data divergence on nodes.

    • Enhanced filtering of replicated transactions that fixes the potential issue of data divergence on nodes.

    • Implemented filtering of the ALTER DATABASE command type to execute these commands locally on the current node. Previously, executing these commands could cause an error due to an attempt to replicate them to all cluster nodes. For more information about the commands that can only be executed locally, refer to Section F.33.6.1.

  • Upgraded pgpro_bindump to provide the following bugfixes:

    • Fixed backup failures due to erroneous inclusion of unlogged tables and temporary tablespaces. Previously, if such files were deleted during the backup process, pg_probackup3 would treat them as missing and abort the operation.

    • Fixed incorrect Postgres Pro edition detection in the PRO data source mode for Shardman.

  • Upgraded pgbouncer to version 1.25.1 for each OS, except ALT SP 8, for which pgbouncer 1.24.0 is still shipped.

  • Upgraded pg_proaudit to provide the following enhancements:

    • Added the pg_proaudit.log_rows configuration parameter that enables or disables logging of the number of rows affected by an SQL command.

    • Added a new event log field: connection duration. DISCONNECT events now contain the total connection duration alongside other connection parameters.

  • Upgraded pg_probackup to version 2.8.13 Enterprise, which provides the following new features, optimizations, and bug fixes:

    • Added verification and validation of recovery-target-name in the WAL archive during recovery. This prevents situations where the Postgres Pro cluster fails to start due to an unreachable recovery target. If a named recovery target was created before the last backup, the recovery process now correctly checks its existence.

    • Added the ability to pass parameters to a remote agent in a configuration file format to improve flexibility when working with backup agents in distributed environments.

    • Implemented compatibility with the pgpro_cpumeter extension. The pgpro_cpumeter.stat file is now added to the exclusion list during backup.

    • Added support for virtual-hosted-style requests for S3 storages, including automatic detection of virtual-hosted-style based on the hostname format (when the hostname starts with the bucket name) and improved compatibility with various S3 API implementations (AWS S3, SberCloud, and others). In virtual-hosted-style URLs, the bucket name is included in the hostname, eliminating the need to add it to the file path.

    • Fixed an issue where the --skip-block-validation flag was being ignored during backup. Previously, this resulted in an error if the cluster contained pages with invalid checksums in their headers. This is critically important when enabling checksums in older clusters that may have pre-existing checksum issues. Also, a warning is now displayed when --skip-block-validation is used.

    • Improved backup status reporting. The backup status is now set to DONE before the validation phase. Backup metadata is written twice: before validation and after backup completion. The show command now displays a more accurate backup status during long-running validation checks.

    • Fixed an issue that could result in a crash if the backup_content.control file was deleted before the DELTA backup.

  • Upgraded pgpro_controldata to version 18.2.0.

  • Upgraded pgpro_cpumeter to remove the warning message provoked by the empty machine_id value.

  • Upgraded pgpro_datactl to version 1.3 to provide the following enhancements and bug fixes:

    • Added the estimate command to evaluate compression ratios across different compression algorithms, analogous to the cfs_estimate(relation) function.

    • Added the --per-file option for the stat command to collect detailed statistics for each file.

    • Added support for Russian localization.

    • Fixed compression level ranges for compression algorithms.

    • Fixed the unpack command behavior. Previously, compressed files were overwritten when unpacked to the same directory and incorrectly deleted when unpacked to a different location.

  • Upgraded pgpro_scheduler to version 2.12.2, which provides an improved mechanism for calculating the number of required background workers, along with more detailed hint and warning messages about insufficient background workers. For more information, refer to Calculating Required Background Workers.

  • Upgraded pgpro_stats to provide the following enhancements and bug fixes:

    • Restored the possibility to track aggregate statistics for sessions, which had previously been removed as unused. Whether aggregate statistics for the sessions are tracked is controlled by the pgpro_stats.track_sessions configuration parameter.

    • Improved the behavior of session-tracing functions. The pgpro_stats_trace_insert and pgpro_stats_trace_update functions now fail with an error if some filter attribute is listed in the passed sequence of key-value pairs more than once. If a wrong argument is passed to the pgpro_stats_trace_update function, the filter no longer gets updated. The pgpro_stats_trace_show function now returns exactly the values of explain* attributes that were specified for the filter.

    • Fixed an issue to avoid crash when two or more constants are marked as having the same location in the SQL statement text.

  • Upgraded pgpro_tune to provide the following changes:

    • Added the autovacuum_vacuum_scale_factor and autovacuum_vacuum_insert_scale_factor parameters to the pgpro_tune default.tune preset configuration.

    • Fixed an issue with pgpro_tune not being able to process preset names with whitespaces when specifying a preset in the initdb PGPRO_TUNE environment variable. Now if pgpro_tune fails, initdb also fails.

    • Fixed the default.tune preset, which now correctly displays the order of effective_io_concurrency and random_page_cost parameter values depending on the drive type.

  • Upgraded rum to provide the following changes:

    • Added functions that allow inspecting all types of RUM index pages at a low level.

    • Fixed a bug that caused scanning of multi-column RUM indexes to return incorrect results. This happened when the index was created with order_by_attach set to true for one of the columns, and a query specified conditions for several index columns, including the one with order_by_attach.

E.1.2. Migration to Version 14.22.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.

ABI versions may change between minor releases of Postgres Pro. If this is the case, and you see the ABI mismatch error when trying to run your extension, make sure to install a new version of the extension supplied with a new release of Postgres Pro, or recompile your third-party extension to be able to use it with the current version of Postgres Pro.

When upgrading your high-availability cluster from Postgres Pro Enterprise versions 14.12.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.

Starting from Postgres Pro Enterprise 14.10.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 14.9.2, if there are multitransactions in your database, as it may cause data corruption.

When upgrading to Postgres Pro Enterprise versions starting with 14.8.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 14.