E.1. Postgres Pro Enterprise 16.14.1 #
Date: 2026-06-09
E.1.1. Overview #
This release is based on PostgreSQL 16.14 and Postgres Pro Enterprise 16.13.1. All changes inherited from PostgreSQL 16.14 are listed in PostgreSQL 16.14 Release Notes. As compared with Postgres Pro Enterprise 16.13.1, this version provides the following changes:
Implemented the ability for the query planner to push down join conditions of an outer query into subqueries, which allows choosing more effective join paths in query plans and improving query performance. This optimization can be enabled using the new enable_join_predicate_pushdown configuration parameter and can be useful for 1C workloads.
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'.Optimized the mechanism for join selectivity estimation to work with large MCV lists (most common values). Its algorithmic complexity was quadratic and caused poor performance while working with large target values for table column statistics. This optimization can be useful for 1C workloads.
Provided interoperability of the in-memory system catalog and the parallel query execution mechanism for temporary tables. This interoperability is useful for 1C.
Optimized the usage of shared memory buffers by temporary tables. Now, the records of
pg_statistic,pg_index, andpg_dependsystem catalogs related to temporary tables are stored in the in‑memory system catalog.Additionally, when the in‑memory catalog is used, no permanent objects can now depend on temporary objects. For example, creating a permanent table with a column of a temporary type is no longer allowed, as well as any other dependencies between permanent and temporary metadata. Previously, such dependencies were permitted.
The in-memory system catalog functionality may be useful for 1C.
Optimized the mechanism of selectivity estimation for the query planner with the functionality enabled by the planner_upper_limit_estimation configuration parameter. This optimization can be useful for 1C.
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.
Implemented the ability to cache file descriptors for directories in
PGDATAand updated theopenandstatsystem calls to use these cached descriptors to reduce CPU usage when planning SQL queries.Fixed an issue with pg_dump failing to dump data due to the dependency on custom data types if executed with the
--transfer-diroption.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 and pgpro_result_cache.
Fixed an issue that could cause the pg_pathman extension with the enabled
pg_pathman.enable_partitionrouterparameter to fail when trying to execute theUPDATE ... FROMcommand using common table expressions.Fixed an issue with restoring a cluster using pg_dump/pg_dumpall. Previously, pg_dump/pg_dumpall could generate an invalid
CREATE DATABASEcommand with a duplicatedlocale_providerparameter. Now, the parameter is produced only once, avoiding restore and upgrade errors.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
EXCEPTIONclause 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_estimatefunction.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 DATABASEexecution. The issue occurred because system interrupts were not processed properly while the command was waiting to acquire a lock forcfs_gc_lock_file.
Removed the functionality of the optimizer for adding
Index Only Scanplan nodes belowAppendnodes that are generated forORclauses if the enable_appendorpath parameter is set toon. This functionality could cause incorrect query execution plans and resulting data.Added the pgbouncer_exporter utility to export Prometheus metrics for pgbouncer.
Added the pgpro_validate utility to check data integrity of a Postgres Pro instance.
Upgraded aqo to version 2.3, which provides the following enhancements and bug fixes:
Added the new aqo_storage_usage function that allows you to get current and maximum sizes of aqo storage and allocated dynamic shared memory.
Optimized the internal structure of the aqo_data storage, as well as improved the mechanisms for allocating dynamic shared memory and lock usage when working with storage data. These enhancements allowed fixing an issue with updating
aqo_datastorage that was caused by exclusive locks on the underlying hash table and resulted in constant growing ofidle in transactionsessions and unstable aqo operation.Fixed 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 the ODBC driver to version 18.00.0001.
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
AUTHENTICATEevents 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
dstfield for events logged in CEF format.Fixed an issue with excessive memory usage when processing
DISCONNECTevents. 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-pathoption.Fixed incremental backups in
PAGEmode with the--streamoption. 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-pathoption to exclude specific files or directories from backup inPROmode.Optimized the backup performance by excluding temporary files of the
postmasterprocess.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 thelibpb3-encoderpackage instead of the erroneouslibpgprobackup3.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
BLCKSZparameter 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
baselineandtemplatevalues for theplan_typeargument and contains the newwildcardsargument for template plans. Also added the following arguments to this function:sample_stringto specify the query with constants andstatusfor 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
baselinevalue for theplan_typeargument.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:
pgpro_multiplan_hintset_updateto pgpro_multiplan_update_hintsetpgpro_multiplan_template_hintset_updateto pgpro_multiplan_update_template_hintsetpgpro_multiplan_baseline_cost_updateto pgpro_multiplan_update_baseline_cost
Removed the
constantsandprep_constsfields from the pgpro_multiplan_captured_queries view. These fields were redundant since query constants are contained in thesample_stringfield 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 NOTHINGrule.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_stringvalues 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_hashvalue for template plans, which could cause applying these plans to inappropriate queries.
Upgraded pgpro_planner to version 1.2 to fix an issue that could result in certain problems of extension operation if the aqo module was loaded before this extension.
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_result_cache to provide the following bug fixes:
Fixed an issue with memory allocation that could occur in pgpro_result_cache with the enabled pgpro_result_cache.consistent parameter when executing a very large number of queries in one transaction.
Fixed an issue that could occur when using the
result_cachehint with theoffsetandlimitarguments if the size of the returned result set exceeded the pgpro_result_cache.max_entry_size limit.
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 executorbackground worker is started, thedatabase managernow 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. Nowschedule.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_sfile to fix a file descriptor leak in case of errors.
Upgraded pgpro_stats to provide the following bug fixes:
Fixed excessive memory consumption by a query that used pgpro_stats with
pgpro_stats.trackset toall. 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 pgvector to version 0.8.2.
Upgraded rum to improve performance of RUM index search using the index operators
<=|and|=>when the order_by_attach index storage parameter is set totrue.
E.1.2. Migration to Version 16.14.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.
To upgrade your BiHA cluster from Postgres Pro Enterprise 16.13 or earlier to Postgres Pro Enterprise 16.14, refer to the upgrade and migration instructions for BiHA.
To upgrade the citus extension from version 12.1 to version 13.0, see the upgrade instructions.
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 16.3.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.
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 16.