E.1. Postgres Pro Enterprise 18.1.1 #
Release Date: 2025-12-26
E.1.1. Overview #
This release is based on PostgreSQL 18.1 and includes all the new features introduced in PostgreSQL 18, as well as bug fixes implemented in PostgreSQL 18.1 update. For the detailed description, see PostgreSQL 18, and PostgreSQL 18.1 Release Notes.
For the list of extension modules and utilities specific to Postgres Pro Enterprise, as well as the main user-visible core changes over vanilla PostgreSQL, see Section 2. As compared to Postgres Pro Enterprise 17.7.1, the following differences are worth mentioning:
Added the ability to create tables that are divided into partitions by specifying a foreign key. The foreign key is used as a reference to the parent partitioned table and is defined by the
PARTITION BY REFERENCEclause.Added the
pg_relation_logical_blocksfunction to compute the disk space used by relation forks for both compressed and uncompressed tables.Added the new
OLD_PASSWORD_TIMEandOLD_PASSWORD_MAXparameters for theCREATE PROFILEandALTER PROFILEcommands. These parameters are required to enable authentication with the previous password.OLD_PASSWORD_TIMEspecifies for how long the previous password can be used for authentication alongside the new one.OLD_PASSWORD_MAXspecifies the number of attempts to authenticate with the previous password before it is locked. Theoidandpassloginattemptsfields were added to thepg_role_passwordcatalog, and thepfloldpasswordtimeandpfloldpasswordmaxfields were added to thepg_profilecatalog to display information related to previous passwords.Added the new compute_plan_id configuration parameter that allows enabling and disabling in-core computation of query plan identifiers. Also added the
plan_idfield to the pg_stat_activity view to display plan identifiers.Added the new extra_query_transformations configuration parameter that controls additional query tree transformations. This parameter replaces the
enable_any_to_lateral_transformationandenable_extra_transformationsparameters that were removed.Added the append_optimized storage parameter that enables or disables bulk insertion into tables. This functionality allows reducing the time spent searching for buffers in shared memory and generating fewer WAL records.
Implemented the
pg_temp_defaulttablespace for default storage of temporary objects, such as temporary tables, indexes on such tables, or temporary files that are created, for example, to store intermediate query results. This tablespace is created by default at cluster initialization. Besides, thespcpersistencecolumn is added to thepg_tablespacecatalog. Temporary tablespaces can store only temporary objects, while permanent tablespaces cannot store temporary objects. You can now also make a permanent tablespace temporary using theALTER TABLESPACEcommand.Implemented the following enhancements for the k-NN search:
Minimized the number of “primitive” index scans during index-only scans in cases when the
ORDERexpression argument is outside the bounds of ScalarArrayOp conditions.Added the ability to merge several ScalarArrayOp conditions specified using the
ANDlogical operator.
Allowed casting from the
xiddata type to thexid8type.Changed the Adaptive Query Execution behavior related to plan identifiers. Now for AQE operation, the compute_plan_id configuration parameter should be set to
auto(default) oronto enable in-core computation of plan identifiers. Otherwise, AQE is disabled.Improved the BiHA solution to provide the following features and optimizations:
Upgraded biha to version 1.7.
Implemented cascading replication for BiHA clusters. You can configure cascading replication when initializing a new BiHA cluster or GDBiHA cluster by means of the updated bihactl utility and then modify cascading replication configuration using max_replicas, preferred_roles, priority parameters and corresponding functions. If any replication source fails, BiHA re-configures cascading replication automatically.
Implemented experimental functionality that allows to unite nodes of the BiHA cluster into segments (logical nodes) that can be located in geographically distributed data centers. Data is transferred between segments via a single thread between the leader and the front follower — physical nodes located in the leader segment and the follower segment respectively. If the leader or front follower fails, data replication is re-configured automatically. If required, you can set the leader segment manually. For more information, refer to Geographical Distribution and Disaster Resilience.
Upgraded the bihactl utility that keeps former functionality and provides support for managing cascading replication and segments for geographical distribution and disaster resilience.
Added the biha.super_status_v view — the extended version of the biha.status_v view that additionally displays data for GDBiHA cluster.
Enhanced the logging functionality to provide better usability and log message clarity. Added separate logging levels for
Postgres ControllerandConfig Controllercomponents.Implemented the service mode functionality managed by the biha.service_mode function. The service mode allows to temporarily pause BiHA operation. This may be required when you modify configuration parameters and want to ensure changes are applied on all cluster nodes.
Added the biha.monitoring function that allows monitoring the current status of BiHA cluster nodes. You can call this function from any node.
Added watchdog — a special protection mechanism that helps to prevent node hanging and split-brain issues. You can manage
watchdogusing the biha.watchdog_timeout configuration parameter.
Inherited the vanilla implementation of automatic removal of some unnecessary table self-joins. The corresponding
enable_self_join_removalconfiguration parameter is removed; use enable_self_join_elimination instead.Inherited the vanilla implementation of automatic transformations of
x IN (VALUES (...), (...))constructions intox = ANY([...])constructions to get efficient query plans. The pgpro_planner extension is no longer required to perform these transformations.Removed the deprecated
pgpro_version,pgpro_edition, andpgpro_buildfunctions. Use the pgpro_version, pgpro_edition, and pgpro_build configuration parameters instead.Ended support for Debian 11.
Upgraded aqo to version 4.0 to implement optimizations that improve performance and significantly reduce overhead of query planning.
Upgraded pgpro_multiplan to change the logic to calculate plan identifiers for the
planidfield of the pgpro_multiplan_stats view. Now you should set the compute_plan_id configuration parameter toonto enable in-core computation of plan identifiers, which is used by pgpro_stats. Otherwise, the values of this field are set to0.Added the experimental KVik module to proxima. Designed for systems with high data-reading workloads, KVik provides in-memory caching of data stored in Postgres Pro databases and fast operation with cache via RESP (Redis Serialization Protocol). The main features of KVik are the following:
high-performance data reading
support of RESP commands, such as
SET,GET, andDELautomatic invalidation of cached data when modified via
INSERT,UPDATE, andDELETEstatements in Postgres Pro databasesautomatic data update in Postgres Pro databases when modified in cache via
SETandDELoperations
Upgraded the apache_age extension to version 1.6.1.
Upgraded orafce to version 4.16.3.
Upgraded pg_filedump to version 18.1.
Upgraded pg_hint_plan to version 1.8.0.1.
Upgraded pg_probackup to version 2.8.12 Enterprise.
Upgraded pgpro_controldata to version 18.2.0.
Upgraded pgpro-orautl to version 2.2.
Upgraded pgvector to version 0.8.1.
Upgraded tds_fdw to version 2.0.5.
Postgres Pro is no longer compatible with the citus extension.
Removed the deprecated vops extension.
E.1.2. Migration to Version 18 #
You can migrate to Postgres Pro Enterprise 18 from the same or a previous version of PostgreSQL (that is supported by the upgrade method chosen) or Postgres Pro Standard/Postgres Pro Standard Certified and from a previous version of Postgres Pro Enterprise/Postgres Pro Enterprise Certified. The same holds for migration to Postgres Pro Enterprise Certified 18. See Section 18.6 for the methods to upgrade your database cluster. Consult the Postgres Pro Enterprise support team if you experience issues during migration. Backward migration is not supported. Note that migration from Postgres Pro Enterprise to Postgres Pro Enterprise Certified of the same major version (or vice versa) is an update between Postgres Pro compatible versions (see Section 18.6 for more details).
To migrate from PostgreSQL, Postgres Pro Standard, or Postgres Pro Enterprise release based on a previous PostgreSQL major version, make sure to install its latest available minor version and then perform a dump/restore using pg_dumpall or use the pg_upgrade utility.
If you choose to run pg_upgrade, make sure to initialize the new database cluster with compatible parameters. In particular, pay attention to the checksum settings in the cluster you are migrating from. If pg_upgrade creates any SQL files in its current directory, run these files to complete the upgrade. You cannot use the pg_upgrade --swap option to upgrade to Postgres Pro Enterprise from PostgreSQL or Postgres Pro Standard due to incompatibility of heap and FSM page headers and from Postgres Pro Enterprise lower than version 14 due to incompatibility of the visibility map page format.
When migrating from PostgreSQL or Postgres Pro Standard, make sure to pay special attention to implementation specifics of 64-bit transaction IDs. If you have used explicit casts to 32-bit integers when handling transaction IDs, you have to replace them with casts to bigint since 64-bit transaction IDs are of the bigint type.
For the instructions on migrating your BiHA cluster to version 18, see migration instructions for BiHA.
Note
To avoid conflicts, do not use the postgrespro-ent-18 package to install the new Postgres Pro binaries. Use the individual packages instead. In this case, server autostart needs to be enabled manually, if required. For details on the available packages and installation instructions, see Chapter 17.
For other upgrade requirements imposed by vanilla PostgreSQL, see Section E.3.