E.1. Postgres Pro Enterprise 14.17.1
Release Date: 2025-03-05
E.1.1. Overview
This release is based on PostgreSQL 14.17 and Postgres Pro Enterprise 14.15.1. All changes inherited from PostgreSQL 14.17 are listed in PostgreSQL 14.17 Release Notes. As compared with Postgres Pro Enterprise 14.15.1, this version also provides the following changes:
Added details, like current working directory, the
PGDATA
directory, etc., tocrash_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.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 then_workers
argument.
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 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 a memory context issue, which could previously cause emitting garbage in logs instead of the host and port details when disconnecting from the remote server.
Fixed an issue that could occur when a custom scan was used, which could cause an incorrect state of the query plan and could result in an error when pgpro_stats was involved.
Fixed an issue where roles without explicitly set
VALID UNTIL
attribute and associated with a profile that had PASSWORD_GRACE_TIME set to 0 andPASSWORD_LIFE_TIME
set toUNLIMITED
incorrectly received password expiration warnings. Now they are correctly considered valid indefinitely.Upgraded the apache_age extension to version 1.5.1.
Optimized fasttrun to skip unnecessary truncate operations on empty temporary relations.
Upgraded mamonsu to version 3.5.11 to provide support for pgpro_stats version 1.8.
Upgraded multimaster to add the ability to specify the catchup mode for reconnected nodes using the
multimaster.catchup_algorithm
configuration parameter. Supported theparallel
catchup mode, in which non-conflicting replicated transactions are applied in parallel.Upgraded pgbadger to version 13.0.
Upgraded pgbouncer to version 1.24.0.
Upgraded pg_hint_plan to version 1.4.3.2.
Upgraded pg_portal_modify to version 0.3.5.
Upgraded pg_proaudit to provide the following enhancements and bug fixes:
Added a new event field: session user name. Now an event contains the information about both
session_user
andcurrent_user
attributes of an SQL session.Added support for new event classes:
ALL_DDL_NONTEMP
andALL_DML_NONTEMP
. The scope of these classes is limited to the objects that are not contained inpg_temp_
temporary schemas.nnn
Fixed logging of
SELECT FOR UPDATE
andSELECT FOR KEY SHARE
events asSELECT
, rather thanUPDATE
.
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 fromINFO
toVERBOSE
.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 thePGDATA
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.
Upgraded pgpro_pwr to version 4.8, which provides new features and bug fixes. Notable changes are as follows:
Added tracking of extension versions installed in the cluster through a new report section.
Added a possibility to hide data for certain databases in the report. To this end, a new parameter that accepts an array of databases to be excluded was added to report generation functions.
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_stats to version 1.8.1, which provides the following bug fixes and improvements:
Fixed an issue that could occur during session tracing and cause errors “could not write file ""pg_stat/pgpro_stats_filters.trace.tmp"": No such file or directory”. Concurrent writing from different sessions to a trace file is fixed now, so processes can write to the trace file in parallel without collisions.
Changed the format of the statistics dump file and the corresponding save/load routines.
Implemented an optimization that lowers the locking time in some cases when copying metrics from the local memory to the shared memory.
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.
Upgraded pg_variables. The
DISCARD ALL
command now discards all packages and variables in pg_variables.Upgraded the rum module to update an error message for an error that can occur in the case when a
SELECT
query usesORDER BY
.
E.1.2. Migration to Version 14.17.1
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.
When upgrading your high-availability cluster from Postgres Pro Enterprise versions 14.12.x or lower, first disable automatic failover if it was enabled and upgrade all the standby servers, then upgrade the primary server, promote a standby, and restart the former primary (possibly with pg_rewind).
If you take backups using pg_probackup and you have previously upgraded it to version 2.8.0 Enterprise or 2.8.1 Enterprise, make sure to upgrade it to version 2.8.2 Enterprise or higher and retake a full backup after upgrade, since backups taken using those versions might be corrupted. If you suspect that your backups taken with versions 2.8.0 or 2.8.1 may be corrupted, you can validate them using version 2.8.2.
If you are migrating to the current major version of Postgres Pro Enterprise using pg_upgrade, and you want to keep the existing visibility map representation in pageinspect, you should run the VACUUM
command before the upgrade.
Starting from Postgres Pro Enterprise 14.10.1, the privileges of CREATEROLE
are restricted, and modification of other roles requires the role requesting the change to have the ADMIN OPTION
permission.
It is strongly recommended to avoid migrating a cluster with 32-bit transaction IDs to Postgres Pro Enterprise versions below 14.9.2, if there are multitransactions in your database, as it may cause data corruption.
When upgrading to Postgres Pro Enterprise versions starting with 14.8.1, make sure to upgrade pg_probackup Enterprise to version 2.6.4 or higher since lower versions are incompatible with these Postgres Pro Enterprise versions.
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 14.