43.7. Gatilhos de evento no PL/Perl #

O PL/Perl pode ser usado para escrever funções de gatilho de evento. Em uma função de gatilho de evento, a referência hash $_TD contém informações sobre o evento de gatilho corrente. $_TD é uma variável global, que obtém um valor local separado para cada chamada do gatilho. Os campos da referência hash $_TD são:

$_TD->{event}

O nome do evento para o qual o gatilho foi disparado.

$_TD->{tag}

A etiqueta de comando para a qual o gatilho foi disparado.

O valor retornado pela função de gatilho é ignorado.

A seguir está um exemplo de função de gatilho, mostrando alguns dos itens vistos acima.

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