43.7. Triggers sur événements avec PL/Perl
PL/Perl peut être utilisé pour écrire des fonctions trigger sur
événement. Dans ce type de fonctions, la référence hachée
$_TD contient des informations sur
l'évenement du trigger. $_TD est une
variable globale, qui obtient une valeur locale séparée à
chaque invocation du trigger. Les champs disponibles via
$_TD sont :
-
$_TD->{event}
-
Le nom de l'événement pour lequel le trigger a été
déclenché.
-
$_TD->{tag}
-
La balise de la commande pour laquelle le trigger a été
déclenché.
Le code de retour de la procédure trigger est ignoré.
Voici un exemple de fonction trigger sur événement, illustrant
certaines des informations ci-dessus :
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 PROCEDURE perlsnitch();