Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Ноябрьский коммитфест принес немало интересного! Без лишних предисловий приступаем к обзору.
Самое интересное об июльском и сентябрьском коммитфестах ― в предыдущих статьях серии: 2023-07, 2023-09.
Триггер ON LOGIN
Триггеры событий для REINDEX
ALTER OPERATOR: commutator, negator, hashes, merges
pg_dump --filter=dump.txt
psql: отображение привилегий по умолчанию
pg_stat_statements: отслеживание времени появления оператора и сброс min/max статистики
pg_stat_checkpointer: статистика процесса контрольной точки
pg_stats: статистика столбцов диапазонных типов
Планировщик: исключение лишних соединений таблицы самой с собой
Планировщик: статистика материализованных CTE
Планировщик: доступ к таблице с несколькими условиями
Оптимизация просмотра индекса при поиске по диапазону
dblink, postgres_fdw: детализированные события ожидания
Логическая репликация: перенос слотов репликации при обновлении сервера публикации
Журналирование использования слотов репликации
Unicode: новые информационные функции
Новая функция xmltext
Поддержка AT LOCAL
Бесконечные интервалы
ALTER SYSTEM с неизвестными пользовательскими параметрами
Сборка сервера из исходных кодов
Триггер ON LOGIN
commit: e83d1b0c
В будущей версии появится возможность создавать триггер события на подключение к базе данных.
Как обычно, триггер создается в два этапа. Сначала триггерная функция:
CREATE FUNCTION check_login() RETURNS event_trigger
AS $$
BEGIN
IF session_user = 'postgres' THEN RETURN; END IF;
IF to_char(current_date, 'DY') IN ('SAT','SUN')
THEN
RAISE 'Хороших выходных, увидимся в понедельник!';
END IF;
END;
$$ LANGUAGE plpgsql;
Затем сам триггер:
CREATE EVENT TRIGGER check_login
ON LOGIN
EXECUTE FUNCTION check_login();
Теперь можно быть уверенными, что по выходным, к всеобщему удовольствию, пользователи не будут мешать администратору.