E.1. Postgres Pro Enterprise 15.18.1

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

Date: 2026-06-08

E.1.1. Overview

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

  • Improved standby promotion performance by properly accounting for all changes to free space map blocks on a standby server during write operations. Previously, buffer page eviction could cause free space map inconsistencies during promotion under certain workloads, leading to standby slowdowns after promotion without causing errors.

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

  • Fixed an issue with estimating the number of join rows when the enable_compound_index_stats parameter is set to on.

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

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

  • Added the pgpro_validate utility to check data integrity of a Postgres Pro instance.

  • 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 the pgpro_bindump module to include the following improvements and bug fixes:

    • Added support for the --exclude-path option to exclude specific files or directories from backup in PRO mode.

    • Optimized the backup performance by excluding temporary files of the postmaster process.

    • Fixed an incorrect package name in the error message that appeared when the pgpro_bindump failed to load libpb3_encoder.so. The message now correctly recommends installing the libpb3-encoder package instead of the erroneous libpgprobackup3.

    • Fixed an issue with the CFS garbage collector (GC) being blocked by the backup process, potentially causing write locks during long backups. Both processes now lock only specific data files briefly, avoiding mutual blocking.

  • 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_multiplan to version 1.6, which provides the following enhancements and bug fixes:

    • Implemented the ability to restore baselines and template plans from plan backups. For this, the pgpro_multiplan_restore function now accepts the baseline and template values for the plan_type argument and contains the new wildcards argument for template plans. Also added the following arguments to this function: sample_string to specify the query with constants and status for future usage.

    • Implemented the ability to add plans to a baseline using the pgpro_multiplan_register_query and pgpro_multiplan_freeze functions. The last function now can accept the baseline value for the plan_type argument.

    • Implemented the ability for pgpro_multiplan to register executed prepared statements automatically when the pgpro_multiplan.auto_tracking parameter to is set to on.

    • Added the new pgpro_multiplan_enable, pgpro_multiplan_enable_baseline, and pgpro_multiplan_enable_template functions that allow enabling and disabling certain existing plans.

    • Renamed the following functions:

    • Removed the constants and prep_consts fields from the pgpro_multiplan_captured_queries view. These fields were redundant since query constants are contained in the sample_string field value.

    • Fixed an issue that could cause an assertion failure when trying to freeze the same plan for the second time.

    • Fixed an issue that could cause an assertion failure when trying to register a query with the DO NOTHING rule.

    • Fixed an issue that could cause an assertion failure when using the pgpro_multiplan_register_query function with incorrect optional arguments specifying types of query parameters.

    • Fixed a segmentation fault that could occur when trying to register a query with a common table expression (CTE) or INSERT ... SELECT

    • Fixed an issue where the sample_string values for baselines were saved with parameters rather than constants, which could cause errors when managing these baselines, in particular, when updating their costs using the pgpro_multiplan_update_baseline_cost function.

    • Fixed an issue where baselines did not save non-default values of configuration parameters, which could cause queries to produce plans different from fixed plans in another environment.

    • Fixed an issue with incorrect check of the table_hash value for template plans, which could cause applying these plans to inappropriate queries.

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

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

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.