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