Release Date: 2025-03-13
This release is based on PostgreSQL 17.4 and Postgres Pro Enterprise 17.2.2. All changes inherited from PostgreSQL 17.4 are listed in PostgreSQL 17.4 Release Notes. As compared with Postgres Pro Enterprise 17.2.2, this version also provides the following changes:
Added details, like current working directory, the PGDATA
directory, etc., to crash_info output files.
Added the increased security requirements for the
CREATE PROFILE command.
Now the PASSWORD_REQUIRE_COMPLEX parameter requires
characters from three different groups. Also, all characters of
languages without case distinction (Hindi, Chinese, etc.) in the UTF-8
encoding are considered lowercase.
Added the skip_temp_rel_lock configuration parameter, which allows you to skip locking for temporary relations.
Implemented the following enhancements and bug fixes for CFS:
Changed the default value for the cfs_gc_threshold configuration parameter from 50 to 30 percent.
Fixed an issue with CFS garbage collector being blocked by the backup process. If backup took ran too long, this could lead to write locks, preventing writes to compressed tablespaces. Now both processes lock only specific data files briefly, avoiding mutual blocking.
Fixed an issue with missing compression settings for tablespaces
on standby servers by adding a new WAL record type. Previously,
standby servers did not receive such compression settings because
ALTER TABLESPACE ... SET (compression=true)
was not logged in WAL.
Fixed the cfs_start_gc
function to reject invalid values of the n_workers argument.
Fixed an issue where CFS garbage collector launcher failed to start and to launch garbage collector worker processes on standby servers.
Fixed an issue with upgrading Postgres Pro Standard to Postgres Pro Enterprise using pg_upgrade, which could fail if the old cluster had an epoch greater than 1 with an error like “could not open file”.
Fixed an issue with handling *.cfm.bck files
by pg_upgrade.
Fixed the pg_upgrade --check option
to correctly check that pg_upgrade is run
on a standby. Previously, it would fail with errors like
“cannot assign TransactionIds during recovery”.
Fixed a segmentation fault caused by foreign data wrapper invalidation during autonomous transactions if an autonomous transaction reset global variables while registered callback functions remained active. Now callback functions check for global variables and invalidation data is preserved for parent transactions.
Fixed an issue that caused the server to crash with PANIC instead of returning an appropriate error when deleting tuples from a page where the difference between the minimum transaction ID and the current transaction ID exceeded 2^31.
Fixed pg_multixact bloating by introducing
“soft” limits that trigger
autovacuum earlier.
Fixed an issue where crash_info could fail to write
diagnostic files when handling a stack overflow. Previously, the
signal handler ran on the same stack that had overflowed, which could
prevent it from executing due to lack of available stack space.
Now the handler runs on an alternate signal stack.
Fixed an issue where roles without explicitly set
VALID UNTIL attribute and associated with a profile
that had PASSWORD_GRACE_TIME
set to 0 and PASSWORD_LIFE_TIME set to
UNLIMITED incorrectly received password expiration
warnings. Now they are correctly considered valid indefinitely.
Fixed a bug that caused problems with starting followers added after
execution of ALTER SYSTEM on the initialized leader.
Upgraded the apache_age extension to version 1.5.1.
Upgraded the BiHA solution to provide the following features, optimizations, and bug fixes:
Implemented the ability to decrease the max_connections
configuration parameter in a BiHA cluster
without turning off the biha extension.
You can now decrease the parameter value on the leader node and
restart the node for the changes to take effect. Previously,
the max_connections value could only be
decreased if you temporarily remove the biha
extension from shared_preload_libraries.
Implemented --enable-proxima —
a bihactl init option that
allows to enable proxima
when creating a BiHA cluster.
Fixed a bug that caused the biha-background-worker
process reboot when removing a replication slot.
Fixed a bug that caused problems with conversion of a cluster with the set shared_preload_libraries variable in the postgresql.auto.conf file into a BiHA cluster.
Fixed a bug that caused problems with conversion of a synchronous
cluster into a BiHA cluster. Resetting the
synchronous_standby_names parameter before
conversion of a synchronous cluster is no longer required.
Optimized fasttrun to skip unnecessary truncate operations on empty temporary relations.
Fixed an issue with upgrading pageinspect in some corner cases to 1.10.1 or higher.
Upgraded the pgpro_multiplan extension version 1.1, which provides the following bug fixes:
Fixed an issue with query execution when a plan was approved while
pgpro_multiplan.auto_capturing
was enabled, and then the query was executed with a different plan
and pgpro_multiplan.auto_capturing was disabled.
The issue could manifest itself in errors like “cache lookup failed for type”.
Fixed an issue with pgpro_multiplan failing to identify registered query with the parameter used in several places in this query, which prevented plan freezing for such queries.
Upgraded pgbadger to version 13.0.
Upgraded pgbouncer to version 1.24.0.
Upgraded pg_hint_plan to version 1.7.0.3.
Upgraded pg_portal_modify to version 0.3.5.
Upgraded pgpro_anonymizer to version 1.3.2.
Upgraded pg_proaudit to provide the following enhancements:
Added a new event field: session user name. Now an event contains
the information about both session_user
and current_user attributes of an SQL session.
Added support for new event classes: ALL_DDL_NONTEMP
and ALL_DML_NONTEMP. The scope of these classes
is limited to the objects that are not contained in
pg_temp_
temporary schemas.
nnn
Fixed logging of SELECT FOR UPDATE and
SELECT FOR KEY SHARE events as
SELECT, rather than UPDATE.
Upgraded pg_probackup to version 2.8.7 Enterprise, which provides the following optimizations and bug fixes:
Reduced the log level for “checking WAL file name”
messages that are issued when the show with the
--archive option is executed from
INFO to VERBOSE.
Updated the add-instance command logic to make
the -D option that specifies the path to the
catalog mandatory. add-instance no longer relies
on the PGDATA environment variable for the catalog
location, but requires explicitly specifying the path to the
catalog as the command option.
Improved the garbage collection mechanism in CFS used when a backup copy is created. File-system level locks resolve an issue with the concurrent access to files from compressed tablespaces during copying to a backup and during the defragmentation.
Fixed an issue of the multi-threaded file copying technique that prevents repeated copying of one file. This issue could previously stop the backup creation under high load on the server.
Added the pgpro_gbtree extension that enables creation and use of a global index on a partitioned table. The global index is created for one or several columns of a partitioned table and does not include the partition key. It allows you to perform index scan without iterating through all the partitions.
Upgraded pgpro_queue
to version 1.1, where the no-longer-required
pgpro_queue.launcher_database parameter is removed.
Now when trying to specify this parameter, a corresponding warning
will be displayed.
Upgraded pgpro_scheduler to version 2.11.1 to fix a segmentation fault, which could occur when pgpro_scheduler did not terminate its processes when the associated extension or schema was dropped. Now it terminates with an error instead of crashing.
Upgraded pgpro_sfile
to add a check for the value of the a_sf_index
argument of the sf_write function to be greater
than zero.
Upgraded pgpro_stats to provide the following bug fixes and improvements:
Changed the format of the statistics dump file and the corresponding save/load routines.
Aligned the names of the explain_* filter
attributes of the session tracer with the names of session-tracing
configuration parameters.
Implemented turning off the session tracer functionality when no session-tracing filters are specified.
Fixed an issue with pgpro_usage recording earlier timestamps. Previously, the last usage time of a privilege was recorded based on transaction start time, which could cause the timestamp to move backward if a long-running transaction accessed a table late, while a shorter concurrent transaction accessed it earlier.
Upgraded the proxima extension to provide the following features, optimizations, and bug fixes:
Implemented proxima.p2p_ssl_enabled, proxima.p2p_auth_methods, and proxima.ssl_trusted_certs_dir configuration parameters to manage SSL communication and authentication between cluster nodes.
Extended the list of SQL functions that enable
proxima to automatically establish the
dynamic dedicated session
when they are present in a query. The new functions are
set_config() and setseed().
Disabled launching proxima on a referee node of a BiHA cluster as this could cause authorization issues.
Fixed an issue where BiHA node IDs were not displayed in the proxima process.
Fixed a bug where proxima did not consider
Postgres Pro listen_addresses
values when starting local backends.
Upgraded the rum
module to update an error message for an error that can occur in the
case when a SELECT query uses
ORDER BY.
If you are upgrading from a Postgres Pro Enterprise release based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.
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 upgrade your BiHA cluster from Postgres Pro Enterprise 17.2 to Postgres Pro Enterprise 17.4, see migration instructions for BiHA.
To migrate from PostgreSQL, as well as Postgres Pro Standard or Postgres Pro Enterprise based on a previous PostgreSQL major version, see the migration instructions for version 17.