42.7. Funciones de disparo de eventos en PL/Tcl #

Las funciones de disparo de eventos se pueden escribir en PL/Tcl. PostgreSQL requiere que una función que se va a llamar como disparador de eventos se declare como una función sin argumentos y con un tipo de retorno de event_trigger.

La información del gestor de disparadores se pasa al cuerpo de la función en las siguientes variables:

$TG_event

El nombre del evento por el cual se dispara el disparador.

$TG_tag

La etiqueta de comando para la cual se dispara el disparador.

El valor de retorno de la función de disparador es ignorado.

Aquí tienes un pequeño ejemplo de función de disparador de eventos que simplemente emite un mensaje de tipo NOTICE cada vez que se ejecuta un comando soportado:

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