Подробности на Хабре: «PostgreSQL 19: Часть 2», «Часть 3» и «Часть 4».
Это обзор по коммитам с трех коммитфестов. К релизу детали могут изменится.
➡️ GROUP BY ALL: в
GROUP BY можно не повторять выражения из SELECT. ALL включает все выражения из SELECT, которые не используют групповые функции.➡️ Оконные функции: для
lag, lead, first_value, last_value, nth_value добавили режимы IGNORE NULLS и RESPECT NULLS. По умолчанию используется RESPECT NULLS.➡️ Эксплуатация и расширяемость:
log_lock_waits включили по умолчанию, а функции триггеров событий теперь можно писать на PL/Python.➡️ Планировщик: появилась предварительная группировка, когда сервер сначала агрегирует большую таблицу, а затем делает
JOIN, чтобы обрабатывать меньше строк. Оптимизацию можно отключить параметром enable_eager_aggregate, а условия срабатывания настроить через min_eager_agg_group_size.➡️ Репликация: команда
WAIT FOR LSN позволяет дождаться на реплике применения нужной позиции WAL и быть уверенным, что изменения с основного сервера уже доступны на чтение.➡️ Логическая репликация: появилась синхронизация последовательностей. Она выполняется вручную и сразу для всех последовательностей.
➡️ Секционирование: команды
MERGE PARTITIONS и SPLIT PARTITION позволяют сливать секции и обратно разделять. Обе команды берут исключительную блокировку родительской таблицы на все время работы.➡️ Логическая репликация: запись данных для логического декодирования в
WAL теперь может включаться и отключаться без перезапуска сервера. Текущее фактическое значение показывает параметр effective_wal_level только для чтения.➡️ Производительность и совместимость: ускорили
jsonb_agg и LISTEN/NOTIFY, а standard_conforming_strings больше нельзя отключить, параметр escape_string_warning удален.Регистрируйтесь на PGConf.Russia 2026 до 28 февраля со скидкой 15% — на конференции еще детальнее обсудим, что нас ждет в PostgreSQL 19.
