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