E.16. Postgres Pro Standard 12.7.1

Дата выпуска: 2021-05-27

E.16.1. Обзор

Этот выпуск основан на PostgreSQL 12.7 и Postgres Pro Standard 12.6.2. Все усовершенствования, унаследованные от PostgreSQL 12.7, перечислены в Замечаниях к выпуску PostgreSQL 12.7. Другие важные изменения и улучшения перечислены ниже:

  • Удалён словарь Hunspell hunspell_ne_np. При необходимости используйте расширение, опубликованное в github.

  • Обновлено расширение PTRACK; теперь для отслеживания изменённых страниц используется улучшенный алгоритм. Благодаря этому значительно сокращается количество ложных попаданий в карту изменённых страниц, что, в свою очередь, уменьшает размер резервных копий PTRACK.

  • Исправлена ошибка, из-за которой запросы прерывались с выводом сообщения «geqo failed to make a valid plan» (geqo не удалось создать действительный план) после обновления статистики с помощью VACUUM ANALYZE при включённом параметре enable_compound_index_stats.

  • Добавлена поддержка ОС Ubuntu 21.04; поддержка Ubuntu 16.04 прекращена.

  • Решена проблема установки Postgres Pro в Альт 8.2 СП. Теперь для этой ОС предоставляется отдельный репозиторий пакетов, отличный от репозиториев для младших версий Альт СП.

  • Улучшен алгоритм планировщика при расчёте избирательности замкнутых соединений, что обеспечивает более точные оценки количества строк после соединения.

  • Приложение mamonsu обновлено до версии 2.7.1.

  • Утилита pgpro_controldata обновлена до версии 13.2.0.

E.16.2. Миграция на версию 12.7.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 LEAKPROOF

При обновлении с версии Postgres Pro 12.6.1 и ниже вы должны перестроить покрывающие индексы с неключевыми столбцами, для которых на уровне таблицы определено правило сортировки.

Если вы используете PTRACK в процедуре резервного копирования, реализуемой c помощью утилиты pg_probackup, и обновляетесь с Postgres Pro версии 12.6.2 или ниже, сделайте полную резервную копию базы данных после обновления.