E.7. Postgres Pro Enterprise 16.2.1 #
Release Date: 2024-03-01
E.7.1. Overview #
This release is based on PostgreSQL 16.2 and Postgres Pro Enterprise 16.1.1. All changes inherited from PostgreSQL 16.2 are listed in PostgreSQL 16.2 Release Notes. As compared with Postgres Pro Enterprise 16.1.1, this version also provides the following changes:
Added real-time query replanning, which enables replanning of a query if some trigger indicates its non-optimal execution. Replanning is turned off by default and can be turned on with the replan_enable configuration parameter.
Introduced two new modifiers for working with packages:
#private
and#export
. The#private
modifier defines functions and procedures as private, and the#export
modifier defines which package variables are public.Added configuration parameters to enable getting information on crashes of a backend. The crash_info parameter turns on this functionality, while crash_info_dump and crash_info_location specify the contents and location of crash information files, respectively.
Added a new configuration parameter cfs_gc_respond_time, which allows specifying the time interval that CFS waits for the lock to be released from a file processed by garbage collector before writing a warning to the log.
Optimized memory consumption during selectivity estimation for each array element as compared to vanilla PostgreSQL.
Optimized invalidation of the local relation cache when a temporary table tuple or an index tuple in the
pg_class
is not updated in case of the relation truncation.Updated the default values of default_toast_compression and wal_compression to
lz4
. It speeds up WAL and TOAST processing and reduces disk space utilization.Fixed a segmentation fault that could sometimes occur due to an oversight in a previous
GROUP BY
optimization.Fixed incorrect HOT chain conversion from 32-bit to 64-bit after upgrading Postgres Pro Enterprise using pg_upgrade. Previously, it resulted in the vacuum infinite loop. The number of vacuum retries is now limited to one per tuple. When exceeded, an error is written to the log.
Fixed the race condition between the autovacuum worker and backend processes when clearing orphaned tables, which could manifest itself in “cache lookup failed for relation” errors. Now autovacuum locks the namespaces when clearing orphaned tables.
Fixed an issue that could occur during installation of a Postgres Pro server on Debian-based systems included in a domain with the
postgres
user.Fixed the output of pg-setup, which erroneously displayed the locale from the
LANG
environment variable at cluster initialization. Now the message about locale is not displayed at this stage.Fixed an issue that could occur when a CFS garbage collection worker process failed. Because the worker did not restart automatically, the server restart was needed to continue. Now the worker gets restarted after 10 seconds of its unavailability.
Ended support for Rosa Enterprise Linux Server 7.
Ended support for ROSA COBALT (server edition) based on Rosa platform 7.
Added the apache_age extension that provides graph database functionality.
Upgraded biha to version 1.1, which provides optimizations and bug fixes. Notable changes are as follows:
Added configuration parameters used to specify logging levels for the biha components.
Fixed an issue with missing WAL files on the target server after synchronization of the former leader node using pg_rewind. The issue was caused by the wal_keep_size default value of zero. Now, if not specified by the user, bihactl sets the value to
1GB
.Fixed excessive logging in the
NODE_ERROR
state.
Ensured compatibility with the citus extension that provides the following additional capabilities: sharding, distributed tables, reference tables, a distributed query engine, columnar storage, and the ability to execute DML queries on any node. This extension enables you to arrange columnar data storage and, if required, scale your Postgres Pro installation to a distributed database cluster. Note that there are some limitations when using citus.
Added the dbms_lob extension that allows accessing and manipulating specific parts of a LOB or complete LOBs. Note that only
CLOB
,BFILE
, and temporaryBLOB
objects are supported for now.Upgraded orafce to version 4.9.2.
Upgraded pg_probackup to version 2.7.2 Enterprise, which provides optimizations and bug fixes. Notable changes are as follows:
Optimized the use of memory during backups in the remote mode.
Fixed an issue that occurred during an incremental backup when a table that was not yet copied got removed from CFS.
Fixed the order of processing WAL files by the
archive-push
command when the number of WAL files exceeds the specified--batch-size
.Fixed an error “WAL segment is absent” that could occur when the size of a WAL record being logged exceeded the size of a WAL segment.
Fixed a bug that occurred when creating a versioned bucket in VK Cloud.
Fixed segmentation fault that occurred during execution of the
merge
command in S3.
Upgraded pg_repack to version 1.5.0.
Upgraded pg_variables, which now provides iterator functionality for any collections, as well as functions to work with general collection variables. These functions allow accessing collection elements by a key that can have either integer or text type. These enhancements facilitate migration of Oracle code that processes collections.
Upgraded pg_proaudit to version 2.0, which provides the following major changes and enhancements:
Added new functions
pg_proaudit_set_rule
andpg_proaudit_remove_rule
that allow creating and removing logging rules, respectively. These functions replacedpg_proaudit_set_object
,pg_proaudit_set_role
,pg_proaudit_reset_object
, andpg_proaudit_reset_role
.Implemented the ability to log groups of events by specifying the respective value in the
event_type
argument.Added the
comment
column in thepg_proaudit_settings
view that displays the comment to describe the created logging rule.Implemented the ability to log security events related to objects of the
PREPARED STATEMENT
type as well as events of theDEALLOCATE
,EXECUTE
, andPREPARE
types.Fixed an issue with incorrect logging of the
CREATE DATABASE
,CREATE GROUP
,CREATE ROLE
,CREATE TABLESPACE
, andCREATE USER
security events. Previously, these events were logged asSUCCESS
after the syntax check and before the command execution itself. NowSUCCESS
is written in the log when the command execution finishes, and if the command fails, it is marked asFAILURE
.
Upgraded pgpro_stats to version 1.7, which provides optimizations and bug fixes:
Similarly to a pg_stat_statements fix, changed pgpro_stats to read its “query texts” file in units of at most 1GB. Such large query text files are very unusual, but if they do occur, the previous coding would fail on Windows 64 (which rejects individual read requests of more than 2GB).
Implemented backward compatibility of
pgpro_stats_statements
andpgpro_stats_totals
functions. Now a newer version of the pgpro_stats shared library can be safely used with old declarations of SQL functions. Previously such cases caused a server crash.
Upgraded pgpro_pwr to version 4.4, which supports pgpro_stats 1.7, as well as adds more interactive features and substring-based filtering to the report.
Upgraded the PLV8 extension to version 3.2.2.
Upgraded sr_plan, which provides the following optimizations and bug fixes:
Implemented the ability to save different plans for the query with different sets of parameterized constants by using the unique pair of
queryid
andconst_hash
whereconst_hash
is a hashed value of non-parameterized constants. This pair of keys replacedsrid
.Implemented the ability to freeze query plans based on sets of hints, which can be viewed in the new
hintstr
column of the extension views.Added the
sr_plan_local_cache
view, which provides detailed information about registered and frozen statements in the local cache.Fixed an issue with the extension being unable to freeze the plan for the registered query, which could result in an out-of-memory failure when trying to freeze the same plan once again.
Fixed an issue with the deletion of the query plan storage file, which could occur upon Postgres Pro upgrades. Now a file backup is created to be able to roll back to the previous extension version and restore query plans.
E.7.2. Migration to Version 16.2.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.
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 16.