E.25. Postgres Pro Standard 12.3.1

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

E.25.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.25.2. Миграция на версию 12.3.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.25. Postgres Pro Standard 12.3.1

Release Date: 2020-05-25

E.25.1. Overview

This release is based on PostgreSQL 12.3 and Postgres Pro Standard 12.2.1. All improvements inherited from PostgreSQL 12.3 are listed in PostgreSQL 12.3 Release Notes. Major enhancements over Postgres Pro Standard 12.2.1 include:

  • Fixed a memory leak that could occur during join operations if they required estimating multiple query execution paths for complex queries.

  • Fixed an issue with an infinite loop that could lead to consuming all the available memory while planning join operations with multiple IN conditions.

  • Added the --no-data-checksums option for initdb to allow initializing Postgres Pro clusters with checksums disabled.

  • Added the -c/--restore-target-wal option for pg_rewind to automatically retrieve missing WAL files from WAL archive using the restore_command defined in the target cluster configuration. This Postgres Pro feature has been accepted by the PostgreSQL community and is targeted to appear in vanilla PostgreSQL 13.

  • Added support for Oracle Linux 8.

  • Added support for ALT Linux 8 SP.

  • Added support for Ubuntu 20.04. Support for Ubuntu 19.04 is no longer provided.

  • Added the plpython3 package for Rosa Enterprise Linux Server 7, ROSA COBALT (server edition) based on Rosa platform 7, Red OS Murom 7, GosLinux 7, and AlterOS 7.5 distributions where it was previously missing. Now it is available on all supported platforms except SLES 11 and MSVSphere 6.3.

  • Upgraded several libraries provided with Postgres Pro on Windows. Now the following libraries are used: OpenSSL 1.1.1g, libzstd 1.4.4, gettext 0.20.2, libiconv 1.16, libxml2 2.9.9, and libxslt 1.1.32. The ICU library has been upgraded from version 56.1 to 56.2.

  • Upgraded PTRACK extension to version 2.1. In the new version, the API has been significantly reworked. In particular, you now have to set the ptrack.map_size parameter instead of ptrack_map_size to enable this feature. See PTRACK documentation for details.

  • Upgraded pg_pathman to version 1.5.11 to avoid server failure when trying to access child partitions without the required permissions while parent table access is allowed. This issue could previously occur when using pg_pathman with Postgres Pro 11.7.1 or higher.

E.25.2. Migration to Version 12.3.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

FAQ