42.7. PL/Perlイベントトリガ

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