E.1. Postgres Pro Enterprise 17.7.1 #

Release Date: 2025-12-23

E.1.1. Overview #

This release is based on PostgreSQL 17.7 and Postgres Pro Enterprise 17.6.1. All changes inherited from PostgreSQL 17.7 are listed in PostgreSQL 17.7 Release Notes. As compared with Postgres Pro Enterprise 17.6.1, this version also 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 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.

  • Added details, like information about internal signal handlers, to crash_info output files.

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

  • Implemented the following enhancements and bug fixes for CFS:

    • Added the cfs_compression configuration parameter that allows you to temporary disable CFS compression. It speeds up the migration of large compressed tables.

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

  • Fixed an issue where the limit set by the max_backend_memory configuration parameter was not taken into account for the bump memory context when allocating memory for a backend.

  • 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 apache_age to version 1.5.2.

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

    • Improved the mechanism of aqo learning on subqueries.

    • Fixed 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 from Postgres Pro Enterprise 17.4 or lower to 17.6.

    • 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.7.1 to provide the following enhancements and bug fixes:

    • Implemented the ability 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.

    • Fixed an issue in pg_hint_plan that could result in an infinite loop while processing queries with dollar-quoted strings.

  • 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_autopart to version 1.1 to fix an issue with the ap_enable_automatic_partition_creation function, which failed if the table column name matched an SQL key word. This version also provides interoperability with pgpro_gbtree.

  • 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_gbtree to include fixes that ensured compatibility of global indexes with logical replication and the pgpro_autopart extension.

  • Upgraded pgpro_multiplan to version 1.4, which provides the following enhancements and bug fixes:

    • Implemented the ability to store global prepared statements and use them in multiple sessions within a single server.

    • 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_queue to version 1.3 to provide the following enhancements:

  • Upgraded pgpro_result_cache to version 1.1.1 to provide the following enhancements and bug fixes:

  • 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_tde to version 1.4 to provide the following enhancements and bug fixes:

    • Provided interoperability with the Compressed File System (CFS) feature. pgpro_tde can now encrypt compressed data blocks. Note, however, that pg_rewind cannot be currently used for tablespaces that are both encrypted and compressed.

    • Optimized WAL records processing to improve performance.

  • 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 proxima to provide the following features, enhancements, and bug fixes:

    • Implemented the weighted-round-robin algorithm of workload distribution, as well as the proxima.load_balancer_node_weight configuration parameter to set node weights.

    • Implemented the least-connections algorithm of workload distribution.

    • Implemented integration of proxima and pgpro_multiplan to avoid establishing the dynamic dedicated session for queries with prepared statements. For more information, refer to Integration with pgpro_multiplan for Prepared Statements.

    • Added the pg_backend_set_config function to the list of objects and functions that make proxima automatically establish the dynamic dedicated session. To view the full list, refer to Dynamic Dedicated Session.

    • Implemented code optimization and fixed potential issues of the dynamic dedicated session functionality.

    • Implemented a range of internal fixes and optimizations to improve performance and reliability of the proxima extension.

    • Fixed a bug where the dynamic dedicated session established by the SET TRANSACTION command could not be terminated.

    • Fixed an issue where proxima would hang causing high CPU usage and disk overflow. The hanging occurred when attempting to connect to a follower in a BiHA cluster where nodes had different port numbers set for the proxima.port configuration parameter. Currently, the hanging was fixed, however, the proxima.port value must be identical on all nodes for normal operation of the BiHA cluster.

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

  • Disabled online_analyze. This module is not recommended for use with modern versions of 1C. However, it can be enabled if needed.

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

Important

To upgrade Postgres Pro Enterprise from version 16.X to version 17.X together with the citus extension of version 13.0, see the upgrade instructions.

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