《PostgreSQL Conference Japan 2018》   他のバージョンの文書10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

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