E.22. Выпуск 11.1

Дата выпуска: 2018-11-08

В этот выпуск вошли различные исправления, внесённые после версии 11.0. За информацией о нововведениях версии 11 обратитесь к Разделу E.23.

E.22.1. Миграция на версию 11.1

Если используется версия 11.X, выгрузка/восстановление базы не требуется.

Однако если вы используете расширение pg_stat_statements, прочитайте запись о нём в списке изменений.

E.22.2. Изменения

  • Корректное заключение в кавычки имён переходных таблиц в командах CREATE TRIGGER ... REFERENCING, которые выдаёт pg_dump (Том Лейн)

    Отсутствием кавычек мог воспользоваться непривилегированный пользователь с целью получения прав суперпользователя при последующем восстановлении выгруженных данных или выполнении pg_upgrade. (CVE-2018-16850)

  • Размещение создаваемого дочернего индекса в табличном пространстве, выбранном для секционированного индекса (Альваро Эррера)

    Ранее дочерние индексы всегда создавались в табличном пространстве по умолчанию.

  • Исправление обработки NULL при выполнении распараллеливаемых многопакетных левых соединений по хешу (Эндрю Гирт, Томас Манро)

    Ранее строки внешнего отношения, содержащие значения NULL в ключе хеширования, не попадали в результат соединения.

  • Исправление некорректной обработки выражения, содержащего приведение типа к массиву, внутри предложения CASE, в котором проверяемое выражение является константой (Том Лейн)

  • Исправление некорректного расширения кортежей, не содержащих недавно добавленных столбцов (Эндрю Дунстан, Амит Ланготе)

    В результате этого дефекта наблюдался крах сервера в коде триггера таблицы, в которую добавлялись столбцы; однако были возможны и другие проявления.

  • Исправление ошибок в обработке аргументов с именами или значениями по умолчанию, передаваемых в списке аргументов команде CALL (Том Лейн, Павел Стехуле)

  • Исправление проверки строгости для агрегатов со столбцами ORDER BY (Эндрю Гирт, Андрес Фройнд)

    Логика проверки строгости функции ошибочно игнорировала строки, в которых значения столбцов ORDER BY были равны NULL.

  • Отключение оптимизации recheck_on_update (Том Лейн)

    Эта появившаяся в 11 версии функциональность оказалась не готовой к публичному выступлению. Поэтому решено было её убрать, пока она не будет исправлена.

  • Недопущение создания секции в триггере, присоединённом к родительской таблице (Амит Ланготе)

    В идеале такое создание можно было бы разрешить, но в данный момент оно блокируется во избежание сбоев.

  • Устранение проблем с применением ON COMMIT DELETE ROWS к секционированной временной таблице (Амит Ланготе)

  • Исправление проверок классов символов для корректной поддержки в Windows символов Unicode выше U+FFFF (Том Лейн, Кэндзи Уно)

    Эта ошибка проявлялась в операциях полнотекстового поиска, а также в работе модулей contrib/ltree и contrib/pg_trgm.

  • Обеспечение обработки сервером уже полученных прерываний NOTIFY и SIGTERM до начала ожидания данных от клиента (Джефф Джейнс, Том Лейн)

  • Ликвидация утечки памяти при сканировании индекса SP-GiST (Том Лейн)

    Сколько-нибудь значительное проявление этой утечки наблюдалось, только когда для ограничения-исключения, использующего SP-GiST, в индекс поступало много записей.

  • Предотвращение запуска сервера со значением wal_level, недостаточно большим для поддержки существующего слота репликации (Андрес Фройнд)

  • Исправление кода psql, а также примеров в документации, чтобы функция PQconsumeInput() вызывалась перед PQnotifies() (Том Лейн)

    Тем самым решена проблема, когда psql не выдавал полученное сообщение NOTIFY до следующей команды.

  • Исправление в pg_verify_checksums выбора файлов для проверки контрольных сумм (Микаэль Пакье)

    В некоторых случаях несоответствие контрольной суммы выявлялось в тех файлах, в которых она не должна проверяться.

  • В contrib/pg_stat_statements роли pg_read_all_stats запрещено выполнение pg_stat_statements_reset() (Харибабу Комми)

    Роли pg_read_all_stats должно позволяться только чтение статистики, но не её изменение, поэтому разрешение на выполнение этой функции ей было дано некорректно.

    Чтобы это изменение вступило в силу, выполните ALTER EXTENSION pg_stat_statements UPDATE в каждой базе данных, где установлено расширение pg_stat_statements. (Для баз данных, изначально созданных в версии 11.0, это не должно требоваться, но базы, обновлённые с предыдущей версии, могут содержать старую версию pg_stat_statements. Если модуль был обновлён ранее, команда UPDATE не сделает ничего.)

  • Переход в названиях функций поддержки red-black tree (красно-чёрного дерева) от префикса rb к rbt (Том Лейн)

    Это позволяет избежать конфликта имён с функциями Ruby, нарушающего работу PL/Ruby. Хочется надеяться, что в результате не пострадают другие расширения.

  • Устранение проблем при сборке в macOS 10.14 (Mojave) (Том Лейн)

    Усовершенствование скрипта configure, чтобы в CPPFLAGS добавлялся ключ -isysroot; без этого PL/Perl и PL/Tcl нельзя сконфигурировать или собрать в macOS 10.14. Значение sysroot можно переопределить во время конфигурирования или сборки, установив переменную PG_SYSROOT в аргументах configure или make.

    Теперь рекомендуется, чтобы для связанных с Perl расширений во флагах компилятора указывалось $(perl_includespec), а не -I$(perl_archlibexp)/CORE. Второй вариант по-прежнему будет работать на большинстве платформ, но не в последних macOS.

    Также теперь не требуется указывать вручную ключ --with-tclconfig, чтобы собрать PL/Tcl в последних версиях macOS.

  • Исправление скриптов сборки с MSVC и регрессионного тестирования для работы с последними версиями Perl (Эндрю Дунстан)

    Это изменение вызвано тем, что Perl теперь по умолчанию не включает текущий каталог в свой путь поиска.

  • Реализована возможность запускать регрессионные тесты в Windows с учётной записью администратора (Эндрю Дунстан)

    Чтобы это было безопасно, pg_regress теперь лишает себя расширенных прав при запуске.

  • Обновление данных часовых поясов до версии tzdata 2018g, включающее изменения правил перехода на летнее время в России (Волгограде), Чили, Марокко и на Фиджи, а также корректировку исторических данных для Китая, Гавайев, Японии, Макао и Северной Кореи.