E.4. Выпуск 9.5.22
Дата выпуска: 2020-05-14
В этот выпуск вошли различные исправления, внесённые после версии 9.5.21. За информацией о нововведениях версии 9.5 обратитесь к Разделу E.26.
Сообщество PostgreSQL прекратит выпуск обновлений для версии 9.5.X в феврале 2021 г. Поэтому пользователям не следует медлить с переходом на более новую основную версию.
E.4.1. Миграция на версию 9.5.22
Если используется версия 9.5.X, выгрузка/восстановление базы не требуется.
Однако если вы обновляете сервер с более ранней версии, чем 9.5.20, см. Раздел E.6.
E.4.2. Изменения
- Сохранение свойства - indisclusteredу индексов, перезаписываемых командой- ALTER TABLE(Амит Ланготе, Джастин Призби)- Ранее команда - ALTER TABLEтеряла информацию о том, для какого индекса выполнялась команда- CLUSTER.
- Сохранение свойства идентификации реплики у индексов, перезаписываемых командой - ALTER TABLE(Цюань Цзунлян, Питер Эйзентраут)
- Блокирование объектов на более ранней стадии выполнения - DROP OWNED BY(Альваро Эррера)- Это позволяет исключить ошибки в условиях гонки, когда какие-либо из удаляемых объектов параллельно удаляются в другом сеансе. 
- Исправление обработки ошибок при выполнении - CREATE ROLE ... IN ROLE(Эндрю Гирт)- В некоторых случаях при ошибке вместо надлежащего сообщения выдавалось «unexpected node type» (неожиданный тип узла) или что-то подобное. 
- Устранение ошибок в обработке - gin_fuzzy_search_limit(Аде Хэйуорд, Том Лейн)- При небольшом значении - gin_fuzzy_search_limitвыполнение запросов могло неожиданно замедляться из-за непреднамеренного многократного сканирования одной и той же страницы индекса. В другом месте кода желаемая фильтрация не применялась вовсе, в результате чего могло возвращаться слишком много значений.
- Добавление в набор форматов, допустимых для типа - circle, формата «- (», который должен приниматься согласно документации (Дэвид Чжан)- x,- y),- r
- Доработка функций - get_bit()и- set_bit()для поддержки строк- byteaдлиннее 256 МБ (Мувад Ли)- Так как аргумент, задающий номер бита, имеет тип - int4, с помощью этих функций нельзя обращаться к битам за пределами первых 256 мегабайт значения- bytea. В 13 версии тип аргумента будет расширен до- int8, а тем временем в текущей версии обеспечена поддержка этими функциями больших значений- byteaв обозначенном пределе.
- Устранение возможной утечки открытого дескриптора каталога в - pg_ls_dir(),- pg_timezone_names(),- pg_tablespace_databases()и родственных функциях (Джастин Призби)
- Исправление разрешения типов в полиморфных функциях, чтобы фактический тип результата - anyarrayвыводился из входного типа, если на вход поступает только- anyrange(Том Лейн)
- Устранение возможности сбоя при прерывании команды - REINDEXсигналом завершения сеанса (Том Лейн)
- Предотвращение отображения мусорных данных при выводе статистики таблицы соединения по хешу в - EXPLAIN(Константин Книжник, Том Лейн, Томас Манро)
- Исправление расчёта длительности этапов в процедуре усечения кучи при выполнении - VACUUM VERBOSE(Тацухито Касахара)
- Предотвращение повторного добавления «waiting» (ожидание) в заголовок процесса, выводимый PS (Масахико Савада) 
- Предотвращение преждевременного перерабатывания сегментов WAL во время восстановления после сбоя (Жеан-Гийом де Рорте) - Сегменты WAL, которые становились готовыми к архивации в ходе процедуры восстановления, могли перерабатываться, не попадая в архив. 
- Отказ от сканирования неактуальных линий времени в ходе восстановления архива (Кётаро Хоригути) - Теперь не будут производиться многократные попытки считать несуществующие файлы WAL из архивного хранилища, что важно при низкоскоростном подключении к архиву. 
- Удаление ненужной проверки, сигнализирующей об ошибке «subtransaction logged without previous top-level txn record» (записи подтранзакции в журнале не предшествует запись транзакции верхнего уровня) (Арсений Шер, Амит Капила) - Ситуация, которая ранее считалась недопустимой, могла сложиться на вполне законных основаниях, поэтому данную проверку следует удалить. 
- Обеспечение снятия блокировки - io_in_progress_lockдля слота репликации при обработке нештатных ситуаций (Паван Деоласи)- Ранее блокировка снималась не всегда, вследствие чего процесс walsender мог зависнуть в ожидании. 
- Недопущение изменения - nextXidв обратном направлении на ведомом сервере (Ека Паламадай)- В результате условия гонки сервер горячего резерва мог передавать ведущему серверу некорректные ответные сообщения, вследствие чего на ведущем операция - VACUUMмогла выполняться раньше времени.
- Добавление значений SQLSTATE в формируемые отчёты об ошибках в нескольких местах (Масахико Савада) 
- Реализация в PL/pgSQL надёжного метода пресечения попытки выполнить функцию событийного триггера как обычную функцию (Том Лейн) 
- Устранение утечки памяти в libpq при использовании режима - sslmode=verify-full(Роман Пешкуров)- При проверке сертификата на стадии установления соединения была возможна утечка памяти. Это могло стать серьёзной проблемой, если клиентский процесс в своём жизненном цикле устанавливал много подключений к базе данных. 
- Обработка в ecpg аргумента « - -» как означающего «читать с stdin» на всех платформах (Том Лейн)
- Исправление в pg_dump выгрузки комментариев к объектам политики RLS (Том Лейн) 
- Перенос в выгрузке pg_dump восстановления событийных триггеров на финальный этап (Фабрицио де Ройес Мелло, Хамид Ахтар, Том Лейн) - Это снижает риск нежелательного влияния событийных триггеров на восстановление других объектов. 
- Исправление обработки кавычек в значениях параметров - --encoding,- --lc-ctypeи- --lc-collateутилиты createdb (Микаэль Пакье)
- Устранение краха при попытке вызвать функцию - lo_manage()из- contrib/loкак обычную функцию, а не в качестве триггера (Том Лейн)
- Защита от переполнения полей длины в типах - ltreeи- lqueryмодуля- contrib/ltree(Никита Глухов)
- Устранение утечки ссылки на кеш в - contrib/sepgsql(Майкл Ло)
- Исправление обработки имён локалей в стиле Unix на платформе Windows (Хуан Хосе Сантамария Флеча) 
- Исправление в сборках MSVC манипуляции с путём к Python с учётом того, что он может содержать пробелы (Виктор Вагнер) 
- Исправление в сборках MSVC определения версии Visual Studio во избежание зависимости от языковых настроек (Эндрю Дунстан) 
- Использование в сборках MSVC ключа - -Wno-deprecatedс bison версии новее 3.0, как уже делается в сборках для отличных от Windows ОС (Эндрю Дунстан)
- Обновление данных часовых поясов до версии tzdata 2020a, включающее изменение правил перехода на летнее время в Марокко и канадском Юконе, а также корректировку исторических данных для Шанхая. - Часовой пояс America/Godthab был переименован в America/Nuuk в соответствии с принятым сейчас названием; старое обозначение сохранено для совместимости в виде ссылки. - Также был актуализирован список известных initdb часовых поясов в Windows, так что теперь параметры системного часового пояса на этой платформе будут восприняты корректно с большей вероятностью.