42.7. Событийные триггеры PL/Perl#

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();