E.1. Postgres Pro Shardman 17.7.1 #

Release date: 2026-02-02

This release is based on Postgres Pro Shardman 17.6.1 and PostgreSQL 17.7. It also inherits a number of enhancements and bugfixes from Postgres Pro Enterprise 17.7.1. All changes inherited from PostgreSQL 17.7 are listed in PostgreSQL 17 Release Notes. As compared with Postgres Pro Shardman 17.6.1, the following differences are worth mentioning:

E.1.1. Core and Extensions #

Compared to Postgres Pro Shardman 17.6.1:

  • Added a new shardman.pg_stat_fast_path view and its global view shardman.gv_stat_fast_path that show the number of queries that used or didn't use FastPath, including queries to local tables.

  • Added the shardman.global_analyze_async procedure for cluster-wide parallel analysis of sharded and global tables.

  • Added support for shippable and non-shippable functions for FastPath, except for volatile or stable functions.

  • Added support for multiple sharding keys for FastPath.

  • Updated the Silk features by adding the threshold for the time a worker can run before it is considered long job with the shardman.silk_long_job_time parameter, and setting the maximum number of workers that Silk can run with the shardman.silk_max_workers parameter.

  • Optimized the statistics transfer between nodes.

Enhancements and bugfixes inherited from Postgres Pro Enterprise 17.7.1:

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

  • 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 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 pgpro_bindump to fix compression level validation. Previously, pgpro_bindump enforced the same compression-level range regardless of the selected algorithm.

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

    • Improved take_sample time tracking.

    • Added a possibility to exclude server connection strings from dumps.

    • Added statistics on restartpoints to the reports when it is available.

  • Upgraded pgpro_stats to version 1.10-sdm4 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 Shardman 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.

E.1.2. Management Utilities #

Compared to Postgres Pro Shardman 17.6.1:

  • Added a feature to transfer environment variable values for the pg_ctl commands.

  • Added a feature to start a cluster on one node.

  • Added a feature to send psql commands to a specific shard with the shardmanctl psql command.

  • Improved transferring logic of the environment variable values for the shardcmanctl bench commands.

  • Improved the shardmanctl status command logic.

  • Updated the shardmanctl config get command that now runs without meta lock.

  • Updated postgres_fdw, it is not used for node interactions anymore. Hence, when upgrading from former Postgres Pro Shardman versions, after running shardmanctl upgrade mind running drop extension postgres_fdw on each cluster node. Also it is required to delete postgres_fdw from shared_preload_libraries. shardman_fdw is now used for the internal cluster communications.

  • Fixed the shardman.dictionary_check_json issue that previously resulted in its incorrect functioning.