42.7. Funções de gatilho de evento em PL/Tcl #

Podem ser escritas funções de gatilho de evento em PL/Tcl. O PostgreSQL requer que uma função que será chamada como um gatilho de evento seja declarada como uma função sem argumentos, e retornando o tipo de dados event_trigger.

As informações do gerenciador de gatilhos são passadas para o corpo da função nas seguintes variáveis:

$TG_event

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

$TG_tag

A etiqueta (tag) do comando para o qual o gatilho foi disparado.

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

A seguir está um pequeno exemplo de função de gatilho de evento que simplesmente gera uma mensagem NOTICE cada vez que um comando com suporte é executado:

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