42.7. Событийные триггеры PL/Perl#
42.7. Событийные триггеры PL/Perl #
PL/Perl может использоваться для написания триггерных функций событий. В триггерной функции события хеш-ссылка $_TD
содержит информацию о текущем событии триггера. $_TD
- это глобальная переменная, которая получает отдельное локальное значение для каждого вызова триггера. Поля хеш-ссылки $_TD
следующие:
$_TD->{event}
Имя события, для которого срабатывает триггер.
$_TD->{tag}
Тег команды, для которой срабатывает триггер.
Возвращаемое значение триггерной функции игнорируется.
Вот пример триггерной функции события, иллюстрирующий некоторые из вышеуказанных:
CREATE OR REPLACE FUNCTION perlsnitch() RETURNS event_trigger AS $$ elog(NOTICE, "perlsnitch: " . $_TD->{event} . " " . $_TD->{tag} . " "); $$ LANGUAGE plperl; CREATE EVENT TRIGGER perl_a_snitch ON ddl_command_start EXECUTE FUNCTION perlsnitch();