E.21. Postgres Pro Standard 12.3.1

Дата выпуска: 2020-05-25

E.21.1. Обзор

Этот выпуск основан на PostgreSQL 12.3 и Postgres Pro Standard 12.2.1. Все усовершенствования, унаследованные от PostgreSQL 12.3, описаны в Замечаниях к выпуску PostgreSQL 12.3. По сравнению с Postgres Pro Standard 12.2.1 эта версия также содержит следующие изменения:

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

  • Устранено зацикливание планировщика, которое наблюдалось при операциях соединения со множеством условий IN и сопровождалось потреблением всей свободной памяти.

  • Добавлен параметр --no-data-checksums для initdb, позволяющий инициализировать кластеры Postgres Pro с отключёнными контрольными суммами.

  • Для утилиты pg_rewind добавлен ключ -c/--restore-target-wal, позволяющий автоматически запрашивать недостающие файлы WAL из архива, используя команду restore_command, определённую в конфигурации целевого кластера. Эта функциональность Postgres Pro принята сообществом PostgreSQL и появится в ещё разрабатываемой ванильной версии PostgreSQL 13.

  • Добавлена поддержка Oracle Linux 8.

  • Добавлена поддержка ОС Альт 8 СП.

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

  • Добавлен пакет plpython3 для ОС Rosa Enterprise Linux Server 7 и РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7, а также для РЕД ОС 7 МУРОМ, Гослинукс 7 и AlterOS 7.5, где его раньше не было. Теперь он предоставляется для всех поддерживаемых платформ, кроме SLES 11 и МСВСфера 6.3.

  • Обновлено несколько библиотек, поставляемых с Postgres Pro для Windows, до следующих версий: OpenSSL 1.1.1g, libzstd 1.4.4, gettext 0.20.2, libiconv 1.16, libxml2 2.9.9 и libxslt 1.1.32. Библиотека ICU была обновлена с версии 56.1 до 56.2.

  • Расширение PTRACK обновлено до версии 2.1. В этой версии был значительно переработан API. В частности, для включения этой функциональности теперь нужно использовать параметр ptrack.map_size, а не ptrack_map_size. За подробностями обратитесь к документации PTRACK.

  • Расширение pg_pathman обновлено до версии 1.5.11. В данной версии устранена ошибка, возникавшая при попытке обращения к дочерним секциям, к которым нет доступа, при том, что к родительской таблице доступ разрешён. Эта проблема могла наблюдаться ранее при использовании pg_pathman с Postgres Pro 11.7.1 или новее.

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