E.26. Postgres Pro Standard 12.2.1
Дата выпуска: 2020-03-03
E.26.1. Обзор
Этот выпуск основан на PostgreSQL 12.2 и Postgres Pro Standard 12.1.1. Все усовершенствования, унаследованные от PostgreSQL 12.2, описаны в Замечаниях к выпуску PostgreSQL 12.2. По сравнению с Postgres Pro Standard 12.1.1 эта версия также содержит следующие изменения:
Добавлен параметр enable_compound_index_stats для управления использованием статистики составных индексов для оценки избирательности.
Максимально допустимое значение для параметра track_activity_query_size увеличено до 1 МБ. В ванильном PostgreSQL это изменение запланировано на версию 13.
Исправлена ошибка в функциональности удаления замкнутых соединений.
Исправлена оптимизация планировщика, призванная исключать идентичные выражения
OR, чтобы не исключались похожие выражения, в которых фигурируют разные столбцы, но занимающие одинаковые позиции в разных индексах.Оптимизировано выполнение запросов с узлами Materialize, которые ничего не возвращают; теперь такие узлы вызываются только один раз и пропускаются при последующих итерациях.
В модуле
mcharисправлена обработка предложенияESCAPEв регулярных выраженияхSIMILAR TO.Улучшена производительность запросов с включённой политикой защиты на уровне строк в результате признания функций численных сравнений герметичными.
Расширение mchar обновлено до версии 2.1.
Приложение pg_probackup обновлено до версии 2.2.7.
Приложение mamonsu обновлено до версии 2.4.4.
E.26.2. Миграция на версию 12.2.1
Если вы обновляете выпуск Postgres Pro Standard на базе той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Встроенные функции numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt и numeric_le фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Standard версии 12.1.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 12.2.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION. Например:
ALTER FUNCTION pg_catalog.numeric_eq LEAKPROOF
E.26. Postgres Pro Standard 12.2.1
Release Date: 2020-03-03
E.26.1. Overview
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
ORclauses 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
mcharextension to correctly handle theESCAPEclause inSIMILAR TOregular 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.
E.26.2. 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 LEAKPROOF