Postgres Pro Standard 12

Обзор

Этот выпуск основан на 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.

Миграция на версию 12.2.1

Если вы производите обновление выпуска Postgres Pro Standard, базирующегося на той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.

Встроенные функции numeric_eq, numeric_ne, numeric_gt, numeric_ge, numeric_lt и numeric_le фактически являются герметичными, но они не имели соответствующей пометки в Postgres Pro Standard до версии 12.2.1, в результате чего запросы могли выполняться неоптимально. В частности, это отрицательно сказывалось на производительности запросов при использовании политик защиты на уровне строк. В версии 12.2.1 это было исправлено для новых инсталляций в результате корректировки исходных данных каталога, но существующие инсталляции сохранят некорректные пометки, пока вы не исправите записи этих функций в pg_proc. Чтобы их исправить, обновите экземпляр сервера с помощью pg_upgrade либо вручную измените их в существующем кластере, выполнив во всех его базах данных соответствующие команды ALTER FUNCTION. Например:

ALTER FUNCTION pg_catalog.numeric_eq VOLATILE