Дата выпуска: 2026-04-06
Этот выпуск основан на Postgres Pro Shardman 17.7.1 и PostgreSQL 17.9. Он также наследует часть возможностей и исправлений Postgres Pro Enterprise 17.9.2. Все новые возможности, появившиеся в PostgreSQL 17.9, вы можете найти в разделе Замечания к выпуску PostgreSQL 17. Ниже перечислены значимые отличия этой версии от Postgres Pro Shardman 17.7.1.
Отличия этой версии от Postgres Pro Shardman 17.7.1:
Прекращена поддержка Debian 11.
Исправлена ошибка обновления сторонних серверов после восстановления из резервной копии.
Улучшения и исправления, унаследованные от Postgres Pro Enterprise 17.9.2:
Реализована возможность для оптимизатора добавлять узлы плана Index Only Scan ниже узлов Append, которые генерируются для предложений OR, если для параметра enable_appendorpath установлено значение on. Это позволяет создавать более эффективные планы запросов и улучшать производительность.
Реализована возможность для оптимизатора упрощать конструкции NOT NOT выражение до выражение в связанных подзапросах, тем самым позволяя «подтягивать» эти подзапросы в основной план запроса и улучшать производительность.
Добавлена возможность для оптимизатора преобразовывать связанные подзапросы с выражением равенства в связанные подзапросы IN, если для параметра enable_extra_transformations установлено значение on. Это позволяет оптимизатору «подтягивать» получившиеся подзапросы и улучшать производительность.
Добавлена новая возможность планировщика запросов преобразовывать предложения OR в запросы UNION ALL. Такие преобразования могут значительно повысить производительность и особенно полезны для запросов, обращающихся к нескольким таблицам. Чтобы включить эту функциональность, используйте новый параметр конфигурации enable_orunion_transformation.
Расширена область применения системного каталога в оперативной памяти. Теперь он также используется для временных функций, процедур и последовательностей. Ранее его можно было использовать только для временных таблиц и их индексов.
Улучшена производительность нетранзакционных операций усечения временных таблиц. Теперь если все страницы основного слоя данных временной таблицы находятся только в кеше temp_buffers, то она может быть усечена мгновенно.
Добавлена экспериментальная возможность многосегментной вставки, которая позволяет осуществлять массовую вставку данных в одну таблицу несколькими параллельными потоками. Эта функциональность пока не рекомендована для использования в производственной среде.
Сокращён объём отладочной информации, которая отправляется клиенту или записывается в журнал сервера. Сообщения уровня важности DEBUG1 об операциях с временными таблицами больше не выводятся.
Оптимизирована производительность заморозки кортежей на странице.
Добавлены следующие изменения в реализацию crash_info:
Изменён формат имени выходных файлов crash_info, в котором теперь указывается дата и время с точностью до микросекунд.
Исправлена ошибка, которая могла возникать при попытке записать текст запроса в выходные файлы crash_info.
Реализованы следующие исправления и усовершенствования для CFS:
Улучшена производительность CFS, которая сейчас использует контексты сжатия при использовании применяемого по умолчанию алгоритма zstd.
Изменено поведение функции cfs_compression_ratio. Теперь эта функция возвращает значение NaN для несжатых отношений.
Исправлена ошибка, из-за которой работа pg_rewind могла завершаться с ошибкой при работе с нежурналируемыми таблицами с TOAST-данными в сжатом табличном пространстве. Причиной было отсутствие очистки файлов *.cfm при копировании «слоя инициализации» для нежурналируемых таблиц.
Исправлена ошибка остановки сборки мусора CFS, из-за которой сборка могла продолжаться после отключения путём проставления для параметра cfs_gc значения false.
Исправлена возможная ошибка сегментации в процессе запуска автоматической очистки из-за обращения к недействительному указателю.
Устранена ошибка сегментации, которая могла возникать при попытке добавить запись в кеш каталога.
Исправлена ошибка в логике работы параметра конфигурации skip_temp_rel_lock, из-за которой блокировки для временных отношений могли не пропускаться. Ошибка могла возникать после отката транзакции и зацикливания OID.
Исправлена ошибка, из-за которой сообщения, генерируемые во время захвата блокировки, содержали некорректные 64-битные идентификаторы транзакций.
Исправлена ошибка, из-за которой процесс автоматической очистки зацикливался на одних базах данных и не очищал другие. Это происходило из-за «мягких» ограничений автоочистки, которые могли задаваться параметрами конфигурации vacuum_freeze_table_age и vacuum_multixact_freeze_table_age. Эти ограничения были удалены. Они больше не нужны, поскольку значения параметров autovacuum_freeze_max_age и autovacuum_multixact_freeze_max_age теперь можно изменить без перезагрузки сервера.
Исправлена ошибка, которая могла возникать во время сбора статистики прерывания очистки для отношений и индексов, разделяемых всеми базами данных в кластере. Количество прерываний параллельной очистки теперь также учитывается в статистике.
Исправлена ошибка в механизме параллельного выполнения запросов с участием временных таблиц. Ранее на диск сбрасывались только страницы самой временной таблицы, без учёта связанных страниц (страниц индексов, TOAST-таблиц и т.д.). Теперь перед выполнением плана или подплана в параллельном режиме сбрасываются страницы всех временных отношений.
Добавлена поддержка SUSE Linux Enterprise Server (SLES) 16.
Обновлено расширение pg_proaudit. Включены следующие исправления и усовершенствования:
Добавлен параметр конфигурации pg_proaudit.log_rows, который включает или отключает регистрацию количества строк, затронутых SQL-командой.
Добавлено новое поле в журнал событий: продолжительность подключения. Теперь записи о событиях DISCONNECT содержат общую длительность подключения наряду с другими параметрами подключения.
Приложение pg_probackup обновлено до версии 2.8.13 Enterprise, в которой добавлена новая функциональность, улучшена производительность и исправлены некоторые ошибки:
Добавлены контроль целостности и проверка параметра recovery-target-name в архиве WAL при выполнении восстановления. Теперь предотвращаются ситуации, когда кластер Postgres Pro Shardman не может запуститься из-за недостижимости целевой точки восстановления. Если именованная точка восстановления была создана до последней резервной копии, процесс восстановления теперь корректно проверяет её существование.
Добавлена возможность передавать параметры удалённому агенту в формате файла конфигурации, что повышает гибкость при работе с агентами резервного копирования в распределённых средах.
Добавлена поддержка запросов с использованием модели virtual-hosted-style для S3-хранилищ, включая автоматическое определение virtual-hosted-style по формату hostname (если hostname начинается с имени бакета) и улучшенную совместимость с различными реализациями S3 API (AWS S3, SberCloud и другие). В virtual-hosted-style URL имя бакета включается в hostname, что исключает необходимость добавлять его к пути файла.
Устранена проблема, из-за которой флаг --skip-block-validation игнорировался при выполнении резервного копирования. Ранее это приводило к ошибке, если в кластере содержались страницы с некорректными контрольными суммами в заголовках. Это критически важно при включении контрольных сумм в старых кластерах, где уже могут существовать проблемы с контрольными суммами. Кроме того, теперь при использовании --skip-block-validation выводится предупреждение.
Улучшен механизм передачи статуса резервного копирования. Статус резервной копии теперь меняется на DONE до этапа проверки. Метаданные резервной копии записываются дважды: до проверки и по завершении резервного копирования. Команда show теперь отображает более точный статус резервной копии во время длительных проверок.
Устранена проблема, которая могла приводить к аварийному завершению работы, если файл backup_content.control был удалён перед выполнением резервного копирования в режиме DELTA.
Утилита pgpro_controldata обновлена до версии 18.2.0.
Обновлено расширение pgpro_stats. Включены следующие исправления и усовершенствования:
Восстановлена возможность агрегирования статистики по сеансам, которая ранее была удалена как неиспользуемая. Будет ли агрегироваться статистика по сеансам, определяет параметр конфигурации pgpro_stats.track_sessions.
Улучшено поведение функций трассировки сеансов. Теперь функции pgpro_stats_trace_insert и pgpro_stats_trace_update завершаются ошибкой, если в передаваемой последовательности пар ключ-значение какой-либо атрибут фильтра встречается несколько раз. Если функции pgpro_stats_trace_update передаётся неправильный аргумент, изменения фильтра более не происходят. Функция pgpro_stats_trace_show теперь возвращает в точности те значения атрибутов explain*, которые были заданы для фильтра.
Добавлено исправление, благодаря которому удаётся избежать сбоя, если две или более константы имеют одно и то же расположение в тексте SQL-оператора.
Исправлена ошибка, которая могла приводить к сбою операций, пытающихся вытеснить буфер из кеша temp_buffers, при этом выводилось сообщение «block N of table_name is still referenced» (на блок N имя_таблицы всё ещё есть ссылка).
Исправлена ошибка, из-за которой в критической секции могла выделяться память и ошибки выводились уровнем важности PANIC вместо ERROR.
Реализована возможность кэширования дескрипторов файлов для каталогов в PGDATA, и обновлены системные вызовы open и stat для использования этих кэшированных дескрипторов, что позволяет снизить нагрузку на процессор при планировании SQL‑запросов.
Отличия этой версии от Postgres Pro Shardman 17.7.1:
Добавлена новая метрика shared_xmin_raw в представление shardman.pg_stat_csn, которая отображает старейший XID, исключая влияние от горизонта идентификаторов транзакций каталога.
Добавлен параметр --for-upgrade для команды shardmanctl restart. Также добавлен параметр --with-restart для команды shardmanctl upgrade.
Усилена защита словарей Postgres Pro Shardman от повреждений злонамеренными пользователями.
Обновлён механизм ручного переключения сегментов, теперь учитываются приоритеты узлов.
Версия etcd обновлена до 3.6.8 и исправлена соответствующая ошибка в случаях, когда узел etcd не возвращал версию.
Исправлена ошибка выполнения команды shardmanctl shard rm при нестандартных портах экземпляра.
Исправлена ошибка вывода статусов при недоступности BiHA. Также исправлена ошибка выполнения команды shardmanctl replicas reinit для узлов в состоянии BiHA NODE_ERROR.
Исправлены следующие уязвимости: CVE-2025-61724, CVE-2025-58187, CVE-2025-47912, CVE-2025-58183, CVE-2025-61723, CVE-2025-58186, CVE-2025-58185, CVE-2025-58188, CVE-2025-61725, CVE-2025-61727, CVE-2025-61729, CVE-2025-61726, CVE-2025-68121, CVE-2026-33186.
Включены следующие исправления для checkup manager:
Исправлена ошибка выполнения команды shardmanctl schema verify --filter sequences, которая ранее не определяла несоответствия в последовательностях.
Исправлена ошибка выполнения функции shardman.check_sharded_tables, которая ранее не определяла проблемы в сегментированных таблицах.
Исправлены ошибки видимости при чтении обновляемых данных в одном запросе.