Найти в Дзене
Postgres Professional

Разбираем самые интересные коммиты, которые скорее всего попадут в 19 версию PostgreSQL

Подробности на Хабре: «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 и быть уверенным, что измен

Разбираем самые интересные коммиты, которые скорее всего попадут в 19 версию PostgreSQL.

Подробности на Хабре: «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.