E.1. Postgres Pro Enterprise 14.23.1

E.1.1. Overview
E.1.2. Migration to Version 14.23.1

Date: 2026-06-05

E.1.1. Overview

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

  • Added the log_parameter_types configuration parameter that controls whether each bind parameter value for a prepared statement in log messages is prefixed with its data type. For example, [integer] $1 = '42'.

  • Restricted changes to the hba_file configuration parameter in the certified edition of Postgres Pro Enterprise. For enhanced security, it is also recommended to use pg_integrity_check, which automatically verifies the integrity of critical files before server startup.

  • Added build IDs of executables and shared libraries to crash_info output files.

  • Fixed an issue with pg_dump failing to dump data due to the dependency on custom data types if executed with the --transfer-dir option.

  • Fixed an issue that could occur when using autopreparing for queries containing hints. Now autopreparing skips such queries, allowing you to use it concurrently with pg_hint_plan.

  • Removed the functionality of the optimizer for adding Index Only Scan plan nodes below Append nodes that are generated for OR clauses if the enable_appendorpath parameter is set to on. This functionality could cause incorrect query execution plans and resulting data.

  • Fixed false positives for checks enabled by the wal_consistency_checking option.

  • Fixed a memory leak that could occur while processing the EXCEPTION clause when user PL/pgSQL code executed an autonomous transaction.

  • Fixed memory estimation for hash joins by accounting for the memory used by batches. Previously, this memory was not included in total memory consumption. Hash joins now also balance the in-memory hash table size depending on the number of batches, which prevents excessive disk usage.

  • Fixed an issue that could cause resource prioritization to be disabled in a session after any error during a query.

  • Implemented the following enhancements and bug fixes for CFS:

    • Added support for indexes and TOAST-tables when estimating their compression ratio using the cfs_estimate function.

    • Improved error messages that are logged for damaged CFS blocks. Now the error message includes an exit code and an error message from the corresponding compression library.

    • Fixed an issue where enabled CFS could slow the DROP DATABASE execution. The issue occurred because system interrupts were not processed properly while the command was waiting to acquire a lock for cfs_gc_lock_file.

  • Upgraded aqo to fix a segmentation fault that could occur after aborting a nested autonomous transaction for which aqo was used. Now aqo checks the nesting level of autonomous transactions and does not clear its local cache when aborting nested transactions.

  • Upgraded orafce to version 4.16.5.

  • Upgraded pg_query_state to fix an issue that could cause the module to hang while waiting for the response from the backend that executes the investigated query.

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

    • Added the pg_proaudit.log_file_mode configuration parameter that specifies permissions for new event log files created by pg_proaudit. Note that regardless of this parameter, the server owner always retains access to the log files.

    • Added a new event field for all types of events logged in CSV files and syslog: IP address of the event source. Previously, this field was displayed only for AUTHENTICATE events logged in the CEF format.

    • Extended the use of the pg_proaudit.log_rows configuration parameter that enables or disables logging of the number of rows affected by an SQL command. Now the number of affected rows is written for all formats of logged events.

    • Added validation of the unique ID of the event (UUID) to avoid invalid memory access.

    • Fixed an issue with incorrect filling of the dst field for events logged in CEF format.

    • Fixed an issue with excessive memory usage when processing DISCONNECT events. Previously, a hash table sized proportionally to max_connections caused unnecessary memory consumption when the value was large. The data is now stored more efficiently.

    • Fixed a parser error in pg_proaudit. Previously, pg_proaudit left some characters unescaped when logging events in the CEF format. Now, symbols are escaped correctly in accordance with the CEF specification.

  • Upgraded pg_probackup to version 2.8.14 Enterprise to provide the following improvements and bug fixes:

    • Added support for absolute paths in the --wal-file-path option.

    • Fixed incremental backups in PAGE mode with the --stream option. With this combination of parameters, WAL files are now correctly saved both inside the backup and in a separate archive.

  • Upgraded pgpro_datactl to version 1.5 to fix an issue with compressing uncompressed tablespaces. Previously, compression would fail if any block size exceeded the BLCKSZ parameter value.

  • Upgraded pgpro_pwr to version 4.13, which adds support for cluster-wide Postgres Pro Shardman statistics and provides optimizations and bug fixes.

  • Upgraded pgpro_scheduler to version 2.13.0, which provides the following changes:

    • Improved logging mechanism. Log messages are more consistent and informative. When a cron job executor background worker is started, the database manager now writes a log message containing the worker's process identifier (PID). This makes it easier to trace worker activity and correlate log entries.

    • Fixed an issue with the schedule.get_self_id() function returning an incorrect job ID for cron jobs. Now schedule.get_self_id() works as expected in both scheduled and one-time jobs, returning the proper job ID.

    • Fixed an issue with deactivating a cron job with next_time_statement. Previously, if this job was deactivated while being executed, it could still remain active. Now, the job is immediately deactivated regardless of its execution state.

  • Upgraded pgpro_stats to provide the following bug fixes:

    • Fixed excessive memory consumption by a query that used pgpro_stats with pgpro_stats.track set to all. With this setting, a function that assigned plan IDs was called multiple times, and the accumulated memory was not optimally released.

    • Updated autopreparing and pgpro_stats to fix issues that could occur with autoprepared query normalization in pgpro_stats. Now for proper query normalization, autopreparing stores the cached plan together with certain additional information to be passed to pgpro_stats when the query is executed.

  • Upgraded pgpro_tune to provide the following enhancements:

    • Improved the utility output to include the used preset and display the correct format of date and time when configuration parameters were applied.

    • Updated presets to improve performance of Postgres Pro.

    • Fixed an issue where the shared_buffers configuration parameter was calculated incorrectly when using initdb with the enabled pgpro_tune extension. This issue could cause the command to run slower.

  • Upgraded pg_variables to support Postgres Pro/ PostgreSQL 18.

  • Upgraded rum to improve performance of RUM index search using the index operators <=| and |=> when the order_by_attach index storage parameter is set to true.

  • Removed support for the pgpro_bindump module.

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