E.1. Выпуск 18.3 #
Дата выпуска: 2026-02-26
В этот выпуск вошло несколько исправлений, внесённых после версии 18.2. За информацией о нововведениях версии 18 обратитесь к Разделу E.4.
E.1.1. Миграция на версию 18.3 #
Если используется версия 18.X, выгрузка/восстановление базы не требуется.
Однако если вы обновляете сервер с более ранней версии, чем 18.2, см. Раздел E.2.
E.1.2. Изменения #
Устранение сбоя после воспроизведения записи WAL об усечении xid мультитранзакций, сгенерированной на более старом корректирующем выпуске (Хейкки Линнакангас) §
Ошибочная логика предотвращения зацикливания идентификаторов мультитранзакций в предыдущих версиях приводила к сбою с ошибками «could not access status of transaction» (не удалось получить статус транзакции). Как правило, такое поведение наблюдалось, когда на резервном сервере на последнем корректирующем выпуске воспроизводились записи WAL с ведущего сервера, работающего на более старой версии.
Предотвращение вывода ошибочных сообщений о недопустимой кодировке при обработке данных TOAST функцией
substring()(Ной Миш) § § §Исправление уязвимости CVE-2026-2006 было слишком агрессивным и могло приводить к выводу ошибочных сообщений о неполных символах даже при использовании допустимых символов.
Устранение упущений в исправлениях для CVE-2026-2007 (Жолт Парраги) §
Если возникала необходимость расширить границы массива, поскольку входные данные содержали больше триграмм, чем изначально предполагалось, функция
generate_trgm_onlyне возвращала изменённый указатель на массив вызывающему коду. Это приводило к выдаче некорректных результатов функциейstrict_word_similarity()и связанными функциями или, в редких случаях, к сбою. Ошибка возникала, когда входная строка удлинялась при преобразовании к нижнему регистру. Известно только об одной ситуации, когда такое могло произойти — если в некоторых однобайтовых кодировках использовалась локаль ICU.Исправление некорректных пометок изменчивости для функций
json_strip_nulls()иjsonb_strip_nulls()(Эндрю Дунстан) §Эти функции всегда рассматривались как постоянные, однако в результате рефакторинга в версии 18 они случайно были помечены как стабильные. Это не позволяло использовать их в выражениях индекса и могло вызывать ненужные повторные вычисления в запросах. Пометки типов функций были скорректированы для новых кластеров баз данных (включая кластеры, обновляемые pg_upgrade до версии 18.3 и выше). Однако это исправление не затрагивает уже существующие кластеры, работающие на версиях 18.0—18.2.
Если ошибка мешает вашей работе с функциями, рекомендуется обновить каталог вручную. От имени суперпользователя выполните
UPDATE pg_catalog.pg_proc SET provolatile = 'i' WHERE oid IN ('3261','3262');в каждой затронутой базе данных. Также обновите
template0иtemplate1, чтобы исправление применилось к базам данных, создаваемым впоследствии.Исправление вычисления набора внешних соединений, которые могут проставлять NULL, для результата подзапроса
LATERAL UNION ALL(Ричард Гуо) §В результате этой ошибки могли пропускаться проверки
NOT NULLиз ложного убеждения, что они не требуется. Это приводило к неверным результатам запросов.Предотвращение конфликтов имён ограничений
NOT NULL, заданных пользователями и автоматически (Лауренц Альбе) §С версии 18 для ограничений
NOT NULLсоздаются полноценные записи вpg_constraint, поэтому для них требуются имена. Предыдущая логика выбора имени для ограниченияNOT NULLне позволяла избежать конфликтов с ограничениями, задаваемыми пользователями, в том же оператореCREATE TABLE.Корректировка вывода значений вспомогательных процессов функциями
pg_stat_get_backend_wait_event()иpg_stat_get_backend_wait_event_type()(Хейкки Линнакангас) §Ранее для вспомогательных процессов эти функции возвращали значение NULL, что не соответствовало представлению
pg_stat_activity.Исправление приведения значения переменной составного типа к типу домена, возвращаемого функцией PL/pgSQL (Том Лейн) §
Ранее если значение переменной было NULL, выводилась ошибка «cache lookup failed for type 0» (ошибка поиска в кеше для типа 0).
Устранение риска обращения по нулевому указателю функцией двоичного ввода модуля
contrib/hstore(Микаэль Пакье) §Ранее происходил сбой функции получения модуля
hstore, если во входных данных оказывались дублирующие ключи. Генерируемые значения модуляhstoreне могут содержать дублирующие ключи, поэтому ранее ошибка не фиксировалась. Сбой могли вызвать вредоносные или повреждённые входные данные.