44.7. Функции событийных триггеров в PL/Tcl #
На PL/Tcl можно написать функции событийных триггеров. PostgreSQL требует, чтобы функция, которая будет вызываться как событийный триггер, была объявлена как функция без аргументов и возвращала тип event_trigger
.
Информация от менеджера триггеров передаётся в тело функции в следующих переменных:
$TG_event
Имя события, при котором срабатывает этот триггер.
$TG_tag
Тег команды, для которой срабатывает этот триггер.
Возвращаемое значение триггерной функции игнорируется.
В этом примере мини-функция событийного триггера просто выдаёт замечание (NOTICE
) при каждом выполнении поддерживаемой команды:
CREATE OR REPLACE FUNCTION tclsnitch() RETURNS event_trigger AS $$ elog NOTICE "tclsnitch: $TG_event $TG_tag" $$ LANGUAGE pltcl; CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE FUNCTION tclsnitch();