E.1. Postgres Pro Shardman 17.9.2 #
Release date: 2026-04-06
This release is based on Postgres Pro Shardman 17.7.1 and PostgreSQL 17.9. It also inherits a number of enhancements and bugfixes from Postgres Pro Enterprise 17.9.2. All changes inherited from PostgreSQL 17.9 are listed in PostgreSQL 17 Release Notes. As compared with Postgres Pro Shardman 17.7.1, the following differences are worth mentioning:
E.1.1. Core and Extensions #
Compared to Postgres Pro Shardman 17.7.1:
Ended support for Debian 11.
Fixed a bug with the foreign server update after restoring from a backup.
Enhancements and bugfixes inherited from Postgres Pro Enterprise 17.9.2:
Implemented the ability for the optimizer to add
Index Only Scanplan nodes belowAppendnodes that are generated forORclauses if the enable_appendorpath parameter is set toon. This allows producing more efficient query plans and improving performance.Implemented the ability for the optimizer to simplify
NOT NOTexpressionconstructions toexpressionin correlated subqueries, which allows “pulling up” these subqueries into the main query plan and improving performance.Added a possibility for the optimizer to transform correlated subqueries with an equality expression into
INcorrelated subqueries when the enable_extra_transformations parameter is set toon. This allows the optimizer to “pull up” the resulting subqueries and improve performance.Added the ability for the query planner to transform
ORclauses intoUNION ALLqueries. Such transformations can significantly improve performance and may be especially useful for queries referencing multiple tables. To enable this functionality, use the new enable_orunion_transformation configuration parameter.Extended the use of the in-memory system catalog to include temporary functions, procedures, and sequences. Previously, it was used only for temporary tables and their indexes.
Improved performance of non-transactional truncate operations on temporary tables. Now if all pages of the temporary table main data fork are located only in the
temp_bufferscache, this table may be instantly truncated.Implemented the experimental multi-segment insertion feature that allows bulk data insertion to the same table in multiple threads simultaneously. This feature is not recommended for using in production for now.
Reduced the amount of debugging information sent to the client or written to the server log.
DEBUG1severity level messages about operations with temporary tables are no longer returned.Optimized performance of page tuple freezing.
Introduced the following changes to the implementation of crash_info:
Changed the name format of
crash_infooutput files to specify date and time with microseconds.Fixed a bug that could occur when trying to write a query text to
crash_infooutput files.
Implemented the following enhancements and bug fixes for CFS:
Improved CFS performance that now uses compression contexts with the default compression library of zstd.
Changed the behavior of the cfs_compression_ratio function. Now the function returns
NaNfor uncompressed relations.Fixed an issue where pg_rewind could fail when used with unlogged tables containing TOAST data in a compressed tablespace. The issue was caused by missing cleanup of the
*.cfmfiles when copying the “init fork” for the unlogged table.Fixed an issue with stopping CFS garbage collection when it would continue running after being disabled by setting
cfs_gctofalse.
Fixed a possible segmentation fault in the autovacuum launcher caused by accessing an invalid pointer.
Fixed a segmentation fault that could occur when trying to add an entry to the catalog cache.
Fixed an issue in the skip_temp_rel_lock configuration parameter operation logic, which could cause the lock skipping for temporary relations to fail. The issue could occur after the transaction rollback and wraparound of OIDs.
Fixed an issue where the messages generated during lock capture contained incorrect 64-bit XIDs.
Fixed an issue, which could cause autovacuum to cycle through some databases while failing to vacuum others. This happened due to autovacuum “soft” limits, which could be set by the vacuum_freeze_table_age and vacuum_multixact_freeze_table_age configuration parameters. These limits were removed. They are no longer required, since the autovacuum_freeze_max_age and autovacuum_multixact_freeze_max_age parameters can now be changed without restarting the server.
Fixed an issue that could occur during collection of vacuum interruption statistics for relations and indexes shared across all databases in a cluster. Also, the number of parallel vacuum interrupts is now taken into account in the statistics.
Fixed an issue with parallel query execution mechanism for queries that involve at least one temporary table. Previously, only temporary table pages were flushed to the disk, excluding other related pages (index pages, TOAST table pages, etc.). Now, before executing any plan or subplan in parallel mode, all temporary relations are also flushed.
Added support for SUSE Linux Enterprise Server (SLES) 16.
Upgraded pg_proaudit to provide the following enhancements:
Added the pg_proaudit.log_rows configuration parameter that enables or disables logging of the number of rows affected by an SQL command.
Added a new event log field: connection duration.
DISCONNECTevents now contain the total connection duration alongside other connection parameters.
Upgraded pg_probackup to version 2.8.13 Enterprise, which provides the following new features, optimizations, and bug fixes:
Added verification and validation of
recovery-target-namein the WAL archive during recovery. This prevents situations where the Postgres Pro Shardman cluster fails to start due to an unreachable recovery target. If a named recovery target was created before the last backup, the recovery process now correctly checks its existence.Added the ability to pass parameters to a remote agent in a configuration file format to improve flexibility when working with backup agents in distributed environments.
Added support for virtual-hosted-style requests for S3 storages, including automatic detection of virtual-hosted-style based on the hostname format (when the hostname starts with the bucket name) and improved compatibility with various S3 API implementations (AWS S3, SberCloud, and others). In virtual-hosted-style URLs, the bucket name is included in the hostname, eliminating the need to add it to the file path.
Fixed an issue where the
--skip-block-validationflag was being ignored during backup. Previously, this resulted in an error if the cluster contained pages with invalid checksums in their headers. This is critically important when enabling checksums in older clusters that may have pre-existing checksum issues. Also, a warning is now displayed when--skip-block-validationis used.Improved backup status reporting. The backup status is now set to
DONEbefore the validation phase. Backup metadata is written twice: before validation and after backup completion. Theshowcommand now displays a more accurate backup status during long-running validation checks.Fixed an issue that could result in a crash if the
backup_content.controlfile was deleted before theDELTAbackup.
Upgraded pgpro_controldata to version 18.2.0.
Upgraded pgpro_stats to provide the following enhancements and bug fixes:
Restored the possibility to track aggregate statistics for sessions, which had previously been removed as unused. Whether aggregate statistics for the sessions are tracked is controlled by the
pgpro_stats.track_sessionsconfiguration parameter.Improved the behavior of session-tracing functions. The
pgpro_stats_trace_insertandpgpro_stats_trace_updatefunctions now fail with an error if some filter attribute is listed in the passed sequence of key-value pairs more than once. If a wrong argument is passed to thepgpro_stats_trace_updatefunction, the filter no longer gets updated. Thepgpro_stats_trace_showfunction now returns exactly the values ofexplain*attributes that were specified for the filter.Fixed an issue to avoid crash when two or more constants are marked as having the same location in the SQL statement text.
Fixed an issue that could cause operations attempting to evict a buffer from the
temp_bufferscache to fail with the “block N of table_name is still referenced” message.Fixed an issue that allowed memory allocation in a critical section, which could cause errors to be reported with
PANICseverity level instead ofERROR.Implemented the ability to cache file descriptors for directories in
PGDATAand updated theopenandstatsystem calls to use these cached descriptors to reduce CPU usage when planning SQL queries.
E.1.2. Management Utilities #
Compared to Postgres Pro Shardman 17.7.1:
Added the
shared_xmin_rawmetric to theshardman.pg_stat_csnview that shows the oldest XID disregarding the catalog transaction ID horizon.Added the
--for-upgradeparameter for theshardmanctl restartcommand. Also added the--with-restartparameter for theshardmanctl upgradecommand.Improved the protection of Postgres Pro Shardman dictionaries against modifications by malicious users.
Updated the manual shard switching mechanism to take into account node priorities.
Updated the etcd version to 3.6.8 and fixed a corresponding bug for the cases when the etcd node did not send its version.
Fixed the
shardmanctl shard rmcommand failure with non-standard instance ports.Fixed a bug with status display if the BiHA was unavailable. Fixed the
shardmanctl replicas reinitcommand failure for the nodes where BiHA was in theNODE_ERRORstate.Fixed the following vulnerabilities: CVE-2025-61724, CVE-2025-58187, CVE-2025-47912, CVE-2025-58183, CVE-2025-61723, CVE-2025-58186, CVE-2025-58185, CVE-2025-58188, CVE-2025-61725, CVE-2025-61727, CVE-2025-61729, CVE-2025-61726, CVE-2025-68121, CVE-2026-33186.
Provided the following bugfixes for checkup manager:
Fixed the
shardmanctl schema verify --filter sequencescommand failure to detect sequence inconsistencies across shards.Fixed the
shardman.check_sharded_tablesfunction failure to detect sharded table issues.
Fixed visibility issues when reading and updating data in the same query.