Postgres Pro Standard 12


This release is based on PostgreSQL 12.2 and Postgres Pro Standard 12.1.1. All improvements inherited from PostgreSQL 12.2 are listed in PostgreSQL 12.2 Release Notes. Major enhancements over Postgres Pro Standard 12.1.1 include:

  • Added the enable_compound_index_stats configuration parameter to control the use of compound indexes statistics for selectivity estimation.

  • Increased the maximum value of the track_activity_query_size parameter to 1MB. In vanilla PostgreSQL, this change is targeted for version 13.

  • Fixed self join removal functionality to achieve better stability.

  • Fixed planner's optimization to correctly take into account similar OR clauses if they reference columns that are different, but have the same position in different indexes.

  • Optimized execution of queries with Materialize nodes that return nothing; now such nodes are called only once and skipped in all the subsequent runs.

  • Fixed the mchar extension to correctly handle the ESCAPE clause in SIMILAR TO regular expressions.

  • Improved query performance with row-level security policy enabled by correctly marking numeric comparison functions as leakproof.

  • Upgraded the mchar module to version 2.1.

  • Upgraded pg_probackup to version 2.2.7.

  • Upgraded mamonsu to version 2.4.4.

Migration to Version 12.2.1

If you are upgrading from Postgres Pro Standard based on the same PostgreSQL major version, it is enough to install the new version into your current installation directory.

While functions numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt, and numeric_le are actually leakproof, they were not marked as such in Postgres Pro Standard 12.1.1, which could lead to incorrect query optimization. In particular, it negatively affected query execution if row-level security policy was in use. Version 12.2.1 repairs this issue for new installations by correcting the initial catalog data, but existing installations will still have incorrect markings unless you update pg_proc entries for these functions. You can run pg_upgrade to upgrade your server instance to a version containing the corrected initial data, or manually correct these entries in each database of the installation using the ALTER FUNCTION command. For example:

ALTER FUNCTION pg_catalog.numeric_eq VOLATILE