E.1. Postgres Pro Enterprise 15.12.1
Release Date: 2025-03-07
E.1.1. Overview
This release is based on PostgreSQL 15.12 and Postgres Pro Enterprise 15.10.1. All changes inherited from PostgreSQL 15.12 are listed in PostgreSQL 15.12 Release Notes. As compared with Postgres Pro Enterprise 15.10.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.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 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 an issue with handling
*.cfm.bck
files by pg_upgrade.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.Added the pgpro_multiplan extension version 1.1, which includes the full functionality of the sr_plan extension as well as new features, such as
plan_hash
— the internal plan identifier of a frozen plan. The sr_plan extension is considered deprecated, and its support will end together with Postgres Pro Enterprise 16. Using pgpro_multiplan together with sr_plan is not allowed as it will lead to a replica failure in a high-availability cluster. More changes as compared to sr_plan are as follows:Added support for
template
plans and the wildcards feature. Now the pgpro_multiplan extension can create a template plan, which can be applied to the queries with table names matching thePOSIX
regular expressions in thepgpro_multiplan.wildcards
configuration parameter.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.5.2.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 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 plpgsql_check to version 2.7.12.
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 15.12.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.
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.
Starting from Postgres Pro Enterprise 15.5.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 15.4.2, if there are multitransactions in your database, as it may cause data corruption.
When upgrading to Postgres Pro Enterprise versions starting with 15.3.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 15.