E.1. Postgres Pro Standard 18.6.1 #

Date: 2026-09-03

E.1.1. Overview #

This release is based on PostgreSQL 18.6 and Postgres Pro Standard 18.4.1. All improvements inherited from PostgreSQL 18.6 are listed in PostgreSQL 18.6 Release Notes. Other major changes and enhancements are as follows:

  • Added the wal_sender_shutdown_timeout server variable to limit replica synchronization waits during shutdown. By default, senders still wait forever for synchronization.

  • Reworked the pg_stats_vacuum_tables, pg_stats_vacuum_indexes, and pg_stats_vacuum_database functions that provide vacuum statistics. Previously, these functions could return NULL instead of an empty result set when no statistics were found for the specified relation or database. Also fixed incorrect inclusion of cluster-wide relation statistics in per-database queries, and added error reporting for invalid input arguments.

  • Returned the vanilla implementation of the hba_file configuration parameter, as the previous fix interfered with Patroni and caused server startup failures.

  • Fixed an issue where the optimizer did not recognize a join between a relation and the same relation with the GROUP BY clause as a self join, which could cause erroneously high selectivity estimations of join conditions.

  • Fixed recovery failures caused by missing intermediate relation segments in backups taken with pg_basebackup. Gaps between the segments are now detected and filled during the recovery process.

  • Inherited the PostgreSQL fix that prevents truncation of CLOG that is still needed by unread NOTIFY messages. This fix prevents could not access status of transaction errors when a backend is slow to absorb NOTIFY messages.

  • Added support for Ubuntu 26.04 for ARM architecture.

  • Added the pgpro_stats_2 extension, which provides statistics on planning and execution of all SQL statements executed by the server. As compared to pgpro_stats, pgpro_stats_2 improves statistics collection performance using redesigned algorithms. You can disable some functionality at server startup via configuration parameters, allowing the extension to collect only the statistics you need and reduce overhead. The extension is currently experimental and is not recommended for production use.

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

    • Simplified the steps to enable aqo. Now you do not need to execute the CREATE EXTENSION command for aqo operation. This command is required only for using aqo functions and views.

    • Fixed an issue with statistics collection in the intelligent mode, which caused incorrect aqo learning.

    • Fixed a segmentation fault that could occur when calculating the fss value of a subquery.

  • Updated the BiHA solution to provide the following features, optimizations, and bug fixes:

    • Upgraded biha to version 1.9.

    • Implemented a new approach of the BiHA configuration. BiHA configuration parameters are now stored in the pg_biha/biha_conf_config_version.json file and can only be set with special functions. Modifying via ALTER SYSTEM SET is only available for a few optional parameters. You can view the current values of BiHA configuration parameters using cluster configuration functions. For more information, refer to Configuration Parameters, Functions, and Managing Configuration Parameters.

    • Implemented support for pg_probackup3 as a backup method of the bihactl node add command.

    • Implemented migration of a BiHA cluster to a major version of Postgres Pro Standard with minimal downtime that is recommended to use if interruption of your database operation is required to be reduced to a minimum. The implemented migration method is based on the new commands of the bihactl utility designed to automate migration steps: bihactl upgrade start, bihactl upgrade move, and bihactl upgrade finish. You can either migrate your BiHA cluster using an additional server or via conversion of an existing follower. For more information, refer to Migrating the BiHA Cluster to Version 18.X with Minimal Downtime.

    • Implemented a range of bihactl commands for manual switchover: bihactl node set leader, bihactl node set front-follower, bihactl segment set leader, and bihactl unit set leader. For more information, refer to Switchover Using bihactl Commands.

    • Implemented the bihactl run command that allows executing custom scripts with SQL queries to a BiHA cluster. For more information about using bihactl run and the supported script structure, refer to Executing Custom Scripts with bihactl run.

    • Implemented a range of network options for the bihactl utility and network configuration parameters for the biha extension. The new functionality allows separating the BCP control channel and the replication channel across different interfaces, creating a cluster with gateways or proxies between nodes, and avoiding dependency on the listen_addresses configuration parameter.

      The following bihactl options were added:

      The following biha configuration parameters were added:

      To view the current values of the above mentioned configuration parameters, use the biha.config_network function.

    • Implemented the deny_wal_sources configuration parameter and the biha.set_deny_wal_sources function to manage a list of nodes that cannot be used as replication sources for the current node.

    • Implemented the --can-be-leader option of the bihactl node add command and the biha.set_can_be_leader function to manage the can_be_leader parameter of a node. The can_be_leader value can no longer be modified with ALTER SYSTEM.

    • Implemented the biha.set_leader_timeout function to set the maximum time for the leader switchover process to complete when biha.set_leader is called.

    • Implemented graceful and immediate modes for the biha.set_leader function which allows you to switch over the leader manually. You can also set a mode with the --mode option when switching over using bihactl commands.

    • Implemented the biha.wal_validation configuration parameter that allows running the WAL validation procedure to avoid the recovery process abortion caused by WAL inconsistency.

    • Implemented adding the biha extension to the beginning of the shared_preload_libraries list to avoid issues with extensions that require being at the end of the list for correct operation, for example, pgpro_stats. The biha extension is always added to the beginning of the list, but after pg_proaudit if that extension is also present.

    • Improved OID handling by persisting it to a file, so that the referee can restore it from backup during before transactions are available. This ensures that the referee replays all biha_db records at startup.

    • Fixed an issue where a startup of the referee in the referee_with_wal mode would take too long on NFS file systems.

    • Fixed a bug where BiHA was unable to configure cascading replication if a walreceiver error occurred when the priority parameter was configured.

    • Fixed a bug where walreceiver would not restart after modifying the primary_conninfo value.

    • Fixed a bug where the biha.set_sync_standbys function would not change the number of synchronous standbys after enabling synchronous replication in a BiHA cluster that previously ran asynchronously.

    • Fixed an issue where followers could change their state to NODE_ERROR after elections because they continued replicating from the old leader during voting.

    • Fixed an issue where WAL files were applied slowly on nodes.

    • Fixed an issue where BiHA failed to exit the service mode after configuration parameter change.

    • Fixed an issue where after the pg_rewind procedure the former leader would untimely change its state to FOLLOWER and start accepting read-only connections because of the minRecoveryPoint value reset.

    • Fixed an issue with incorrect handling of corner cases involving corrupted WAL records in the WAL trimming mechanism.

    • Fixed an issue of the bihactl node add command where pg_basebackup would not receive environment variables.

  • Upgraded the hypopg extension to version 1.4.3.

  • Upgraded mamonsu to version 3.5.17.

  • Upgraded the ODBC driver to version 18.00.0002.

  • Upgraded orafce to version 4.16.7.

  • Upgraded the pgbouncer_exporter utility to version 0.12.1.

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

    • Added the exclude_role_name parameter to the pg_proaudit_set_rule(), pg_proaudit_remove_rule(), and pg_proaudit_reload() functions, which allows excluding specific roles from logging. This is useful for filtering out actions of technical roles that would otherwise make the audit log overly verbose.

    • Added the pg_proaudit.csv_split_messages configuration parameter that controls whether security events in CSV and syslog output are written as a single line or multiple lines. When disabled, each security event is written on a single line, which simplifies log analysis and parsing.

    • Added the ddllog method that logs DDL changes to permanent database objects to a separate non-rotating CSV file. This allows administrators and support engineers to quickly investigate who changed a database object and when, without having to search the entire security event log.

    • Fixed an issue with unreadable characters in CSV, CEF, and syslog log entries when using a database with a non-UTF-8 encoding. All string fields in the log output are now converted to UTF-8 regardless of the database encoding.

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

    • Added multithreading support for the delete command via the j/--threads option. Backup deletion according to the retention policy and WAL archive cleanup are now executed in parallel.

    • Fixed infinite looping on corrupted backups by adding loop detection. ID order is now validated when reading the backup catalog or searching for the parent full backup.

    • Optimized Postgres Pro port validation. Instead of reading from postgresql.conf and postgresql.auto.conf, which may contain outdated information, the port is now read from the postmaster.pid file of the running server. If the instance port does not match the configuration, pg_probackup issues a warning.

    • Fixed the checkdb and catchup command termination that could occur when an instance was specified without setting the backup catalog path via the -B/--backup-path or the BACKUP_PATH environment variable. Now a clear error message is displayed.

    • Improved diagnostics of remote connection errors. Previously, specifying an incorrect port that was already in use would cause the process to terminate without an error. Now, the reason for termination is displayed, along with a recommendation to check connection parameters.

    • Fixed a memory leak that could occur when reading the server configuration files.

    • Eliminated a potential null pointer dereference by adding out-of-memory handling when parsing the recovery target name in WAL.

    • Added the --write-rate-limit option to the catchup command help output. In other command descriptions, this option's argument, baudrate, is renamed to bitrate.

  • Updated the pgpro_bindump module to include the following bug fixes:

    • Fixed an issue with parallel backups. Previously, each backup created a replication slot with the same default name, causing parallel backups to conflict and terminate with an error.

    • Fixed backup failures that occurred if a file disappeared between scanning a directory and attempting to access it, for example, if it was deleted by Postgres Pro.

    • Fixed an issue with PTRACK backups. Previously, an error would occur if ptrack was not added to shared_preload_libraries while ptrack.map_size was set to non-zero.

    • Fixed an issue that manifested as a could not stat file error and could cause backup or restore processes to crash. Temporary files created by the CFS garbage collector are now skipped during these operations.

    • Fixed an issue where the --external-dirs option failed to process symbolic links correctly, causing the operation to fail with an error.

  • Upgraded pgpro_pwr to version 4.15, which provides enhancements and bug fixes. Notable changes are as follows:

    • Added support for statistics of the PostgreSQL 19 core.

    • Added support for pg_stat_statements 1.13.

    • Added support for pg_stat_kcache 2.3.2.

    • Added new report sections and fields.

    • Fixed the missing integrity constraint, which prevented the cascade deletion of subsample data due to retention policy and thus caused remaining of now-redundant rows in the session statistics table.

  • Upgraded the pgpro_scout utility to version 1.0.4.

  • Upgraded pgpro_stats to version 1.11 to provide the following enhancements and bug fixes:

    • Added the pgpro_stats.enable_warnings configuration parameter that adds a warning to the plan field of the pgpro_stats_statements view if the plan was executed with partition pruning.

    • Added the pgpro_stats_relcaches view showing statistics about creations and removals of the relation cache initialization file pg_internal.init, as well as related functions and configuration parameters.

    • Fixed a plan normalization issue that could be observed for queries executed using the EXPLAIN EXECUTE command by adding a hook for saving information needed for the plan normalization. As a result, sensitive information is no longer exposed in query plans displayed in pgpro_stats views and pgpro_pwr reports.

  • Upgraded pgpro_validate to version 1.2.0 to include the following bug fixes:

    • Fixed SQL injection vulnerabilities in query generation.

    • Fixed a quoting issue that led to relation does not exist errors when running the molotilka command on tables in schemas whose names contain uppercase or special characters.

    • Fixed false no matching entry in pg_attribute table warnings for pg_shdepend rows whose objects belong to other databases of the cluster.

  • Updated pg_upgrade to improve the --check option. Now it also verifies that GRANT/REVOKE commands are not generated for deleted pg_catalog objects when dumping the old database. This check applies to tables, views, procedures as well as regular, aggregate, and window functions.

  • Upgraded pgvector to version 0.8.5.

  • Upgraded pg_wait_sampling to version 1.1.1 to extend its wait event statistics functionality, previously available only in pgpro_stats, and to provide the following enhancements and bug fixes:

    • Added the pg_wait_sampling.history_dimensions and pg_wait_sampling.profile_dimensions configuration parameters that allow you to customize the set of dimensions recorded in the history and the profile.

    • Extended the pg_wait_sampling_current, pg_wait_sampling_history, and pg_wait_sampling_profile views with additional wait event dimensions.

    • Added the pg_wait_sampling_statements view that provides wait event statistics grouped by query and plan identifiers.

    • Added the pg_wait_sampling_objects view that provides wait event statistics for configurable dimensions, such as database, user, client address, application, backend, or session.

    • Fixed an issue that caused queries to pg_wait_sampling_profile to hang when the collector process stopped. Hung queries could not be cancelled normally, and the cluster required an emergency restart. The collector now restarts automatically, and queries return an error when the collector is unavailable.

    • Fixed handling of the pg_wait_sampling.profile_period configuration parameter, which was previously ignored in the collector's timing calculation. Sampling interval accuracy has also been improved.

  • Updated rum to fix a crash that could occur during a RUM index scan if a concurrent VACUUM removed all items from a posting tree leaf page.

E.1.2. Migration to Version 18.6.1 #

If you are upgrading from Postgres Pro Standard based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.

Important

To upgrade your BiHA cluster from Postgres Pro Standard 18.4 to Postgres Pro Standard 18.6, refer to the upgrade and migration instructions for BiHA.

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.

To migrate from PostgreSQL or a Postgres Pro Standard release based on a previous PostgreSQL major version, see the instructions in Postgres Pro Standard 18.0.1 Release Notes.