E.2. Postgres Pro Shardman 17.6.1 #
Release date: 2025-11-17
This release is based on Postgres Pro Shardman 17.5.1 and PostgreSQL 17.6. It also inherits a number of enhancements and bugfixes from Postgres Pro Enterprise 17.6.1. All changes inherited from PostgreSQL 17.6 are listed in PostgreSQL 17 Release Notes. As compared with Postgres Pro Shardman 17.5.1, the following differences are worth mentioning:
E.2.1. Core and Extensions #
Added the fast path optimization for queries that work with data located on the same partition.
SELECT,UPDATE,DELETEcommands and prepared statements are supported with Silk. Fast path cannot be used if theextra_float_digitsconfiguration parameter is less than 0. Disabled by default.Added the
public.list_always_shippable()function to the postgres_fdw that returns a list of always shippable procedures.Added support for the Postgres Pro Shardman metadata reading in pgpro_controldata.
Allowed displaying statistics on size of the
MT_SPImessage components (bytes) sent from the node with theshardman.pg_stat_silk_msg_componentsview.Added a limitation for the local tables that now cannot inherit global tables.
Added a feature to assign a row-level security (RLS) policy to global and sharded tables.
Added support for the extended password policies and global profiles with the shardman.extended_password_policies configuration parameter and the shardman.extended_password_policies_skip_users configuration parameter to specify system users for which no exchange of information on authorization events between Postgres Pro Shardman cluster nodes takes place and which cannot be locked. They, however, can be authorized on a Postgres Pro Shardman standby.
Added support for resolving multiple addresses when configuring a foreign server for Silk.
Added two
READ COMMITTEDmodes to avoid dirty reads, with or without the support of the CSN snapshot per top-level statement managed by the enable_csn_snapshot_for_read_committed configuration parameter.Limited the
shardman.sync_schemaediting to the superuser privileges.Introduced SSL support for Silk.
Updated functions of the
shardman.try_advisory_xact_lock*()type that now returnfalseinstead of throwing an error.Updated the shard creating process, now the
postgresDB is automatically created on a referee node.Updated the supported version of pgpro_pwr to 4.10.
Updated the supported version of amcheck to 1.4.
Updated the supported version of aqo to 3.1.
Updated the supported version of dblink to 1.2.
Updated the supported version of pg_proaudit to 2.0.
Updated the supported version of pgpro_stats to 1.9-sdm4.
Updated the supported version of pg_filedump to 18.0.
Updated the supported version of pgpro_controldata to 18.1.
Updated the supported version of postgres_fdw to 1.4.
Updated the supported version of ptrack to 2.5.
Enhancements and bugfixes inherited from Postgres Pro Enterprise 17.6.1:
Added the share_lock_fk storage parameter that enables or disables acquisition of a single
SHARElock on the table during foreign key constraint checks.Added a possibility for the optimizer to use memoize nodes for parameterized
ANTI JOINs when the enable_extra_transformations parameter is set toon.Improved performance by reducing the number of lock requests for the pg_attribute and pg_statistic tables for queries with a large number of relations that are not present in the system cache. This may be useful for some usage scenarios with 1C.
Improved the efficiency of parallel processing of table indexes in a parallel mode by refactoring the parallel autovacuum code.
Updated CREATE DATABASE, createdb, and initdb to display an information message when the value of lc_collate is used as the default for
icu_localeor--icu-locale.Optimized the behavior when working with the
COALESCEfunction. Now this function is replaced with one of its arguments if all other arguments were evaluated tonull. This allows improving the selectivity of query clauses and producing better execution plans.Introduced the following changes to the implementation of crash_info:
Added the crash_info_timer, crash_info_timer_interval, and crash_info_query_threshold configuration parameters that allow profiling long queries in
crash_infooutput files.Extended the diagnostic information that the crash_info_dump configuration parameter can specify to write in case of a backend crash. By default, now the general information on the signal is dumped and for Linux x64, also the information on the processor state and bytes near RIP (return instruction pointer). All this ensures better diagnostics, in particular, in case of
SIGILL(illegal instruction) signals. The way of dumping stack files in case of crashes has also been changed for Linux x64. Besides,memory_contexthas been removed from the default list of sources to be dumped in order to avoid failures that could occur when writing the diagnostic information.
Implemented the following enhancements and bug fixes for CFS:
Improved compressed tablespace operations on s390/s390x architectures.
Improved the compression ratio estimation for tables using the
cfs_estimate(relation)function. Note thatcfs_estimate(relation)should be used only after a checkpoint to avoid incorrect estimations.Disabled truncation for compressed relations during vacuum operations.
Removed encryption support for CFS, including the
cfs_encryptionconfiguration parameter.
Fixed page image inconsistency during heap insert on an empty page. Previously, this could result in incorrect page contents on standby servers.
Fixed a possible race condition in the
walreceiverprocess.Fixed an issue in
LISTEN/NOTIFYqueue handling, which caused failure to obtain transaction status. Previously,VACUUM FREEZEcould advancedatfrozenxidtoo far forward.Fixed replication issues caused by incorrect WAL horizon advancement. Previously, if transaction freeze was initiated when calculating the page base for 64-bit XIDs rather than by
VACUUM, an incorrect horizon value was written to WAL. This could result in invalidation of logical replication slots or replication lag on physical standbys.Fixed a possible segmentation fault, which could occur when handling an error during global index creation.
Upgraded aqo to provide the following enhancements and bugfixes:
Added the
tmpoidsfield to the aqo_data view and thetmpoidsparameter to the aqo_data_update function to support queries that involve temporary tables along with persistent tables.Fixed the race condition when calling the
aqo_cleanupfunction from different sessions.Fixed an issue where aqo learning data was not saved for queries that use materialization.
Fixed an issue with learning on early terminated nodes. Now for these nodes, if the number of actual rows exceeds the number of predicted rows, aqo learns but with the minimum
reliabilityvalue. Otherwise, learning on these nodes is disabled.
Implemented the ability to configure LDAP authentication for pgbouncer by means of PAM (Pluggable Authentication Modules). For more information, see LDAP Authentication Configuration for pgbouncer.
Upgraded pg_proaudit to provide the following enhancements:
Added support for CEF format for event log files.
Adjusted pg_proaudit output.
xidandvxidfields are no longer displayed if they are zero.
Upgraded pgpro_stats to provide the following enhancements and bug fixes:
Implemented the ability to track utility commands by their
query_id, as it is done in pg_stat_statements. Previously, utility commands were tracked based on strict comparison of their textual query strings, and therefore could not be properly normalized.Fixed a segmentation fault that could occur when defining custom metrics. The error originated from a memory allocation issue, which was fixed.
Upgraded pg_query_state to version 1.2 to add the pg_progress_bar and pg_progress_bar_visual functions that allow monitoring the current progress of query execution.
Improved the pg_waldump utility behavior when used with a segment containing an unfinished WAL record. Previously, if an unfinished WAL record was found, the utility displayed a misguiding log message about an invalid page header. Now, the log message clearly informs about an unfinished WAL record found providing the beginning LSN of the record, as well as the lost part LSN.
E.2.2. Management Utilities #
Added support for the protected mode on the biha control channel.
Added a feature of a cluster restart with minimum downtime by means of the
shardmanctl restart rollingcommand.Added a shardmand mechanism that allows showing the services that are currently running in the system.
Added new configuration parameters to work with syncpoints:
syncpointIntervalthat allows specifying how often is a syncpoint created (in seconds),syncpointEnabledthat enablesmonitorthat periodically creates syncpoints, andsyncpointLimitthat specifies the amount of the most recent syncpoints stored.Allowed executing commands outside of the transaction block with the
--no-transactionflag of theshardmanctl forallcommand.Allowed viewing a list of sharded and global table information with the shardmand endpoint
/shardmand/v1/tables.Added a feature to start a cluster with SSL certificate-based authentication.
Added a maintenance user option under which deadlock detector and monitor of hanging transactions can be run.
Allowed defining a variable for use by a custom script with a new shardmanctl bench run -D flag.
Changed the BiHA configuration update algorithm. Now the follower and referee nodes wait until the configuration is updated on the leader and only then update their own configuration. This allows decreasing the
max_wal_sendersparameter value.Disabled coloring of the log level when executing any
shardmanctlcommand.Guaranteed the data consistency when forming user lists.
Improved the
shardmanctl config updatecommand output wording in case of an error.Lifted a limitation, now global and sharded tables can be created during a backup process.
Lifted the limitation for decreasing of sensitive specification parameters, such as
max_connections,max_prepared_transactions, andmax_worker_processes. Previously it could result in the configuration rollback issues.Updated the integrity check that now can be run after every configuration update if
certVersionis set totrue.Updated the
keeperconnection behavior, now it is held instead of being closed.Updated the consistency and user schema check mechanisms.
Updated the shardmanctl config update command that now can modify specifically the
certVersionparameter.Updated the admin role privileges, it can now modify the shardman.sync_schema configuration parameter.
Updated the etcd client version to 3.6.4.
Updated the “smart” restoration of the
shardmanschema. Nowshardmanctl schema restore --smartchecks and restores all lacking PostgreSQL extensions correctly.Updated the system behavior for the
shardmanctl probackup backup. Now, when creating a backup, it waits for the leader and standbys to be ready, thus avoiding the leader switching to theRO(Read-only) state when the command is executed.Fixed the
PANIC-level error when runningshardmanctl set.Fixed a bug that previously resulted in the
referee_with_walfailure at a Postgres Pro Shardman cluster with tablespaces startup.Fixed the BDU:2025-02344 and GHSA-fv92-fjc5-jj9h vulnerabilities.
Fixed the GO-2025-3770 vulnerability.
Fixed a bug that, in some rare cases, resulted in
shardmanctl statusfailure.Fixed a bug that previously resulted in adding new nodes failure if the
shardmanschema had global tables with data.Fixed the behavior that previously resulted in replication failure if BiHA and
postgresuser passwords were different.Fixed a bug, previously it was impossible to add new cluster nodes if the
shardmanschema contained global sequences.Fixed the referee nodes failure in cases when the following parameters were changed:
max_connections, max_wal_sendersshared_buffers,max_prepared_transactions,max_worker_processes.Fixed extensions restore, now all extensions are restored and not only those of Postgres Pro Shardman.
Fixed a bug that resulted in
PANICduring the rebalance process.Fixed an issue that could result in instances restart due to a short connection loss with etcd.
Fixed the displaying of the restoring progress indicators.
Fixed a bug that previously resulted in the single shard restore process hanging.
Fixed the initialization failure in cases when
svt5was enabled.