Release Date: 2025-12-18
This release is based on PostgreSQL 16.11 and Postgres Pro Enterprise 16.10.2. All changes inherited from PostgreSQL 16.11 are listed in PostgreSQL 16.11 Release Notes. As compared with Postgres Pro Enterprise 16.10.2, this version provides the following changes:
Improved the search mechanism for matching mchar and
mvarchar strings using the LIKE
operator. Optimized case-insensitive comparison results in significant
speed increase. This may be useful for 1C.
Improved performance of getting information on crashes of a backend by optimizing utility functions and commands.
Improved performance in cases where resource prioritization is disabled.
Implemented password masking in the server log by default to protect sensitive data from being revealed.
Added a possibility for the optimizer to transform EXISTS
correlated subqueries with INNER JOIN clauses to
joins within the main query plan when the enable_extra_transformations
parameter is set to on.
Added the enable_sorted_merge_join configuration parameter that enables or disables the query planner's use of merge joins in plans with sorting.
Added the max_wal_segments_prealloc configuration parameter, which enables the background writer to create WAL segments in advance during its main operation cycle, reducing the load on backend processes. The parameter sets the maximum number of such segments.
Limited the maximum number of assigned transaction IDs to 263. Now a warning is also shown when a threshold of 10 million XIDs is reached. Once the maximum number of XIDs is reached, new transactions cannot be started, but read-only queries continue to work.
Fixed an issue with CFS failing to compress
relation files where OID exceeds INT32_MAX. The issue
occurred when moving an existing table to a CFS tablespace.
Fixed an issue with the vacuum process, which could wait indefinitely
to freeze a page due to the BufferPin
wait event. The issue could occur in case there was a buffer that was constantly used by backends.
Fixed a bug that caused incorrect calculation of the internal vacuum_freeze_min_age threshold, which should equal half of the autovacuum_freeze_max_age value. Previously, this bug could cause internal miscalculation of autovacuum parameters and, consequently, unnecessary vacuum runs.
Added new values of the PGPRO_TUNE environment variable
used by initdb.
Added the auto_dump extension, which collects data for long-running and problematic queries and creates files with all information to reproduce them for troubleshooting.
Added the ldap2pg utility that automates the creation, update, and removal of Postgres Pro roles and users from an enterprise directory.
Added the
pg_trgm_mchar
extension, which allows fast trigram-based search for similar
mchar and mvarchar strings. This extension
also provides support of GIN indexes for mchar and
mvarchar types. This may be useful for
1C.
Added the pgpro_planner extension that provides query transformations and optimizations to produce efficient query execution plans and improve performance.
Added the
pgpro_cpumeter
extension, which provides access to a new CPU usage monitoring system
function. This pgpro_cpumeter function continuously
collects and records information about CPU cores used by
Postgres Pro server processes.
Upgraded aqo to fix an issue where the aqo_cleanup function did not remove data in the basic mode.
Upgraded the BiHA solution to provide the following optimizations and bug fixes:
Fixed an issue where the leader was lost after non-incremental upgrade of a BiHA cluster.
Fixed a bug that occurred when the MIN value of the synchronous_standby_names
configuration parameter was higher than 0 and the current number of standbys was
higher than the num_sync value. This could
cause hanging of transactions in case of replication hanging.
Fixed a bug where biha.add_to_ssn, biha.remove_from_ssn, and biha.set_ssn functions modified the list of synchronous standbys of the synchronous_standby_names parameter on the leader node only.
Fixed a bug where bihactl init --convert failed when
executed in a Postgres Pro Enterprise instance with
configured pg_proaudit.
Fixed an issue of multiple error messages caused by large heartbeats that might not fit into the shared memory buffer. The issue was solved by decreasing the size of heartbeats written to WAL.
Fixed memory leaks caused by incorrect error handling.
Fixed redundant memory allocation checks.
Upgraded multimaster to provide the following bug fixes:
Fixed an issue where multimaster
returned an error when executing read-write transactions containing
queries to postgres_fdw foreign tables. The root
cause was that postgres_fdw does not
support two-phase commit transactions used by
multimaster. To fix the issue, the
postgres_fdw.read_only_transactions configuration
parameter was implemented. When set to on, it
enables read-only queries to foreign tables in read-write transactions,
which allows seamless operation of multimaster
and postgres_fdw.
Fixed an issue of potential transaction commit latency caused by an error in the exchange logic for messages containing information about transaction application on nodes.
Upgraded orafce to version 4.16.3.
Upgraded pageinspect to fix an issue with the
page_header
function, which returned incorrect information for double xmax
and some index pages. Specifically, the sequence of columns was confused and the
prune_xid value was returned in the xid_base column.
Now the information is returned correctly.
Upgraded pg_filedump to version 18.0.
Upgraded pg_hint_plan to version 1.6.2 to to re-read hint strings if hints were added outside the standard planner. This functionality is required to provide interoperability with the pgpro_multiplan extension when working with plans that are based on hint sets.
Upgraded pg_portal_modify to version 0.3.6.
Upgraded pg_proaudit to provide the following enhancements and bug fixes:
Added support for logging of the following event types:
ANALYZE, DISCARD ALL,
DISCARD PLANS, DISCARD SEQUENCES,
DISCARD TEMP (for temporary tables),
CHECKPOINT, FETCH,
and MOVE.
Added the new event class MISC. This class
allows logging of all events (including those mentioned above)
not related to other event classes.
Added a new method for logging security events. Events in CEF format can now be logged not only in a separate file but also in syslog.
Added a new event log field: application name. AUTHENTICATE
events now contain the name of the initiating application
alongside the connection parameters.
Fixed an issue with pg_proaudit failing to log security events in a CEF file.
Fixed an issue with pg_proaudit failing
to log events for the INSERT command following
CREATE within anonymous code blocks (the
DO command) and stored procedures/functions.
Fixed an issue with pg_proaudit overloading a CPU core due to failed log rotation.
Upgraded pg_probackup to version 2.8.11 Enterprise, which provides the following new features, optimizations, and bug fixes:
Added support for Postgres Pro Enterprise 18.
Added support for Transparent Data Encryption (TDE). The version output of pg_probackup now displays a TDE support indicator.
Made the host from which a backup was taken to be saved in
backup.control and displayed in the
show command output.
Improved the behavior during restore from read-only media, including more informative warning messages.
For archive-push and archive-get
operations in the remote mode, made SIGQUIT
signals to be ignored to prevent core dumps of helper programs
when the server stops.
Added validation to ensure consistency between the port number in
PGDATA and the --pgport option.
Also added the --force flag to perform backups
even when these values mismatch.
Fixed handling of external tablespaces during incremental restore.
When using the --force flag, the tablespace
contents are no longer overwritten.
Fixed a problem with the backup command holding
the replication slot after successful completion.
Fixed the identifier conflict for the --wal-tree
option by adding a uniqueness test.
Fixed the order of displaying the calculated and expected checksum values in the warning message.
Upgraded pg_repack to version 1.5.3.
Upgraded pgpro_bindump to fix compression level validation. Previously, pgpro_bindump enforced the same compression-level range regardless of the selected algorithm.
Upgraded pgpro_controldata to version 18.1.0.
Upgraded pgpro_datactl to version 1.2.
Upgraded pgpro_multiplan to version 1.4, which provides the following enhancements and bug fixes:
Improved the stability of the auto_approve_plans mode for real-time query replanning with the enabled pgpro_multiplan.auto_capturing parameter.
Added the new
pgpro_multiplan_remove_template
function that removes the specified template
plan from the permanent pgpro_multiplan
storage.
Added the new
pgpro_multiplan_template_hintset_update
function that replaces the generated hint set for the
template plan with the specified set of custom
hints.
Improved messages for errors that can occur when registering queries and freezing query plans.
Changed the logic of specifying values of the pgpro_multiplan.wildcards parameter. Now this parameter accepts a single regular expression rather than a comma-separated list of multiple expressions.
Fixed an issue where the template plan was not
identified and applied if constants in the corresponding query were
changed.
Fixed an issue in pgpro_multiplan that could
cause a server crash when the same query was executed repeatedly
due to incorrect handling of the sample_string
value.
Upgraded pgpro_pwr to version 4.12, which provides optimizations and bug fixes. Notable changes are as follows:
Improved take_sample time
tracking.
Added support of pgpro_stats 1.10.
Added a possibility to exclude server connection strings from dumps.
Added statistics on restartpoints to the reports when it is available.
Upgraded pgpro_result_cache to version 1.1.1 to provide the following enhancements and bug fixes:
Implemented automatic cache invalidation at the cluster level using WAL files. It can be enabled using the pgpro_result_cache.consistent and pgpro_result_cache.wal parameters.
Added a possibility to set the pgpro_result_cache.max_memory_size
parameter at runtime using the ALTER SYSTEM command.
Added support for the new no_result_cache hint that allows excluding specific queries from caching.
Added two optional limit and offset
arguments to the result_cache hint.
These arguments allow you to restrict the number of rows returned
from cached result sets and skip certain rows before returning.
Fixed an issue that could occur in pgpro_result_cache when caching a large number of simple queries by changing the algorithm for storing cached results.
Fixed a segmentation fault that could occur when reloading the
configuration file after the pgpro_result_cache.consistent
parameter was set to on.
Upgraded pgpro_scheduler
to fix an issue with incorrectly recording timestamp values in the
service table associated with the get_log function.
Now missing data is properly recorded when a NULL value is specified.
Upgraded pgpro_stats to version 1.10 to provide the following enhancements and bug fixes:
Added new statistics to
pgpro_stats_statements and
pgpro_stats_totals views. These
statistics were added to
pg_stats_statements in
Postgres Pro 18. Related functions are
updated accordingly.
Added the new pgpro_stats_statements_filtered
function to filter statistics similar to those provided in the
pgpro_stats_statements view by one or
several fields: userid,
dbid, queryid,
and planid. Calling this function is
faster than querying the
pgpro_stats_statements view with
appropriate values of these fields.
Improved the behavior of pgpro_stats similarly to pg_stat_statements. The changes are:
Allow the parameterization of SET
values. This reduces the bloat caused by
SET statements with differing
constants.
Allow the parameterization of constant lists.
Fixed an issue that could occur when in pgpro_stats custom metrics were changed on the fly. Now any change to custom metrics requires a server restart.
Upgraded pgpro-orautl to version 2.1.
Upgraded pgvector to version 0.8.1.
Upgraded pldebugger to version 1.1.6.
Upgraded pljava to version 1.6.10.
Upgraded plpgsql_check to version 2.8.5.
Upgraded rum to fix a bug with the module upgrade that was caused by an incorrect variable specified in its makefile.
Upgraded tds_fdw to version 2.0.5.
Upgraded utl_mail
to fix an issue with incorrect processing of some email address formats.
Now, a number of common formats, including root@localhost,
are processed correctly.
Improved messages in sr_plan for errors that can occur when registering queries and freezing query plans.
Disabled online_analyze. This module is not recommended for use with modern versions of 1C. However, it can be enabled if needed.
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.10 or earlier to Postgres Pro Enterprise 16.11, see 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.