E.1. Postgres Pro Standard 12.20.1
Дата выпуска: 2024-08-14
E.1.1. Обзор
Этот выпуск основан на PostgreSQL 12.20 и Postgres Pro Standard 12.19.2. Все усовершенствования, унаследованные от PostgreSQL 12.20, перечислены в Замечаниях к выпуску PostgreSQL 12.20. Другие важные изменения и улучшения перечислены ниже:
Устранена ошибка, из-за которой оптимизатор игнорировал столбцы из условий запроса. Ранее при частичном использовании составного индекса количество строк могло завышаться, что приводило к созданию некорректного плана. Ошибка возникала из-за неправильного поведения элементов многостолбцовой статистики.
Устранена ошибка в
ANALYZE
, которая могла возникать из-за невозможности отобразить системный каталогpg_statistic
. Если в базе данных есть индексы со столбцамиINCLUDE
, после обновления Postgres Pro рекомендуется ещё раз выполнитьANALYZE
для этих столбцов, чтобы это исправление применилось.Обновлено расширение mchar для устранения ошибки, из-за которой игнорировались управляющие символы при сравнении строк типов данных
mchar
иmvarchar
.Приложение pg_probackup обновлено до версии 2.8.3, в которой исправлена проверка резервных копий для баз данных, содержащих OID более 109. Ранее в таких случаях статус проверки мог отображаться некорректно.
Расширение pg_filedump обновлено до версии 17.0, в которой были исправлены некоторые ошибки и появились новые возможности. В частности, содержимое метастраниц для индексов GIN и SP-GiST теперь отображается корректно, а также устранена проблема нехватки памяти для кодирования и распаковки.
Исправлено некорректное поведение pg_wait_sampling при использовании с расширенным протоколом запросов.
E.1.2. Миграция на версию 12.20.1
Если вы обновляете выпуск Postgres Pro Standard на базе той же основной версии PostgreSQL, достаточно просто установить новый выпуск в текущий каталог инсталляции.
Если вы создаёте резервные копии с помощью pg_probackup и ранее обновили его до версии 2.8.0 или 2.8.1, обязательно обновите его до версии 2.8.2 или выше и сделайте полную резервную копию базы данных после обновления, поскольку резервные копии, созданные с использованием этих версий, могут быть повреждены. Чтобы проверить, повреждены ли резервные копии, созданные с помощью версий 2.8.0 или 2.8.1, можно использовать версию 2.8.2.
Встроенные функции 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
При обновлении с версии Postgres Pro 12.6.1 и ниже перестройте покрывающие индексы с неключевыми столбцами, для которых на уровне таблицы определено правило сортировки.
Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro версии 12.6.2 или ниже, сделайте полную резервную копию базы данных после обновления.