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