E.1. Postgres Pro Enterprise 17.2.1 #

Release Date: 2024-12-27

E.1.1. Overview #

This release is based on PostgreSQL 17.2 and includes all the new features introduced in PostgreSQL 17, as well as bug fixes implemented in PostgreSQL 17.2 update. For the detailed description, see PostgreSQL 17, and PostgreSQL 17.2 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 16.6.1, the following differences are worth mentioning:

  • Added the SPLIT PARTITION and MERGE PARTITIONS subcommands to the ALTER TABLE command. The subcommands split a single partition into several partitions and merge several partitions into one, respectively, hence improving partitioned table management.

  • Added the pg_backend_get_config_value function that allows you to request the current value of a parameter for the backend with the specified PID.

  • Added the enable_extra_transformations configuration parameter, which enables additional query-tree transformations.

  • Optimized CFS operation: enhanced the reliability of the garbage collector, introduced automatic restart mechanisms to ensure that CFS worker processes are relaunched in the event of a failure.

  • Renamed the real-time query replanning functionality to adaptive query execution (AQE).

  • Inherited the PostgreSQL implementation of SLRU cache size configuration. The corresponding slru_buffers_size_scale configuration parameter is removed now. Use the following parameters instead: commit_timestamp_buffers, multixact_member_buffers, multixact_offset_buffers, notify_buffers, serializable_buffers, subtransaction_buffers, and transaction_buffers.

  • Added the pgpro_autopart extension that allows dynamic partition creation by using triggers on the partitioned table view.

  • Added the pgpro_ilm extension that enables moving rarely used relations to a lower-cost storage. This feature is similar to Oracle's information lifecycle management (ILM). Only moving of regular tables and partitions of partitioned tables is currently supported.

  • Added the pgpro_multiplan extension, which includes the full functionality of the sr_plan extension as well as new features, such as plan_hash of the frozen plan for further usage. The sr_plan extension was removed from Postgres Pro Enterprise.

  • Added the pgpro_queue extension for message queueing management directly within the database.

  • Added the pgpro_usage extension that provides per-user statistics on accessing relations and calling functions, including a view that shows which privileges are unused and functions that return the date and time of the last access to tables.

  • Implemented the proxima extension that combines functionality of a proxy server and a connection pooler.

  • Upgraded the apache_age extension to support Postgres Pro 17. In particular, added an error message to clarify that, in prepared statements, using a property filter as a parameter in a MATCH clause is only supported with the agtype containment operator (@>), and not with access method operators.

  • Upgraded aqo to version 3.0, which provides the following major changes and enhancements:

    • Introduced the sandbox mode, which allows working in an isolated environment without touching the main aqo knowledge base. This mode can be turned on either on a primary or a standby node by setting aqo.sandbox to on.

    • Introduced a learning mechanism where aqo adjusts the planner's row estimates with its own predictions. It can be turned on by enabling aqo.delta_rows.

  • Improved the BiHA callbacks functionality:

    • Added the NODE_ADDED, NODE_REMOVED, and LEADER_STATE_IS_RW callback types.

    • Updated the TERM_CHANGED type.

    • Added the biha_callbacks_user user role as the default user for callback execution.

  • Upgraded mamonsu to version 3.5.10.

  • Upgraded multimaster to add the ability to specify the catchup mode for reconnected nodes using the multimaster.catchup_algorithm configuration parameter. Supported the parallel catchup mode, in which non-conflicting replicated transactions are applied in parallel.

  • Upgraded pg_hint_plan to version 1.7.0, where the format of hint table changed to require the unique query_id instead of the parameterized query text.

  • Upgraded pg_probackup to version 2.8.6 Enterprise.

  • 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 pg_variables. The DISCARD ALL command now discards all packages and variables in pg_variables. You can use the extension with proxima via the forced dynamic dedicated session.

  • Deprecated the pgpro_version, pgpro_edition, and pgpro_build functions, which will be removed in future releases. Use the pgpro_version, pgpro_edition, and pgpro_build configuration parameters instead.

  • Removed the ability to create constructs using JSON_EXISTS() with the RETURNING clause, which in earlier versions allowed the function to return values of any type. This syntax is not supported by the SQL/JSON standard, which states that the JSON_EXISTS() predicate should only return TRUE, FALSE, or UNKNOWN.

  • Removed the deprecated built-in connection pooler. It's recommended to use the new proxima extension instead.

  • Removed the deprecated pg_pathman extension.

  • Ended support for AlterOS 7, ALT 8.2 SP, ALT 9, Debian 10, SLES 12.

E.1.2. Migration to Version 17 #

You can migrate to Postgres Pro Enterprise 17 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 17. 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.

For the instructions on migrating your BiHA cluster to version 17, see the Migrating the BiHA Cluster to Version 17.2 section.

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.

Note

To avoid conflicts, do not use the postgrespro-ent-17 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.4.