Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL: 14.2, 13.6, 12.10, 11.15 и 10.20, в которых исправлено 55 ошибок, выявленных за последние три месяца. В том числе устранены проблемы, приводившие при редком стечении обстоятельств к повреждению индексов при изменении цепочек HOT (heap-only tuple) во время выполнения операции VACUUM или при выполнении операции REINDEX CONCURRENTLY для индексов к таблицам, в которых используется механизм хранения TOAST.
Устранены аварийные завершения при выполнении ALTER STATISTICS и при извлечении данных с multirange-типами. В планировщике запросов устранены ошибки, приводившие в выводу некорректных результатов. Устранены утечки памяти при обновлении индексов по выражениям и при выполнении операции “REASSIGN OWNED BY” над большим числом объектов. Обеспечено построение расширенной статистики для сегментированных таблиц.
Дополнительно можно отметить выпуск утилиты reshape, позволяющей без остановки работы совершать сложные обновления схемы данных в PostgreSQL, в обычным условиях требующие ручного внесения изменений и временной остановки работы сервисов, использующих БД.
Утилита даёт возможность перейти со старой схемы данных на новую без длительных блокировок и не прерывая цикла обработки запросов. Утилита автоматически создаёт представления таблиц, с которыми приложения продолжают работать во время миграции схемы данных, а также настраивает триггеры, транслирующие операции добавления и удаления данных между старой и новой схемами.
Таким образом, при использовании
reshape во время миграции старая и новая схема одновременно остаются доступны и приложения можно постепенно перевести на новую схему без остановки работы (в больших инфраструктурах можно поэтапно заменять обработчики со старых на новые). После завершения перевода приложений на новую схему созданные для сохранения поддержки старой схемы представления и триггеры удаляются. В случае выявления проблем с приложениями во время миграции можно отменить изменение схемы и вернуться к старому состоянию.