イベントトリガ関数をPL/Tclで作成することができます。
PostgreSQLでは、イベントトリガとして呼び出される関数は、event_trigger型の戻り値を返す引数のない関数として宣言する必要があります。
トリガマネージャからの情報は、以下の変数内に格納されて関数本体に渡されます。
$TG_eventトリガが発行されたイベント名
$TG_tagトリガが発行されたコマンドタグ
トリガ関数の戻り値は無視されます。
サポートするコマンドが実行される度に、単にNOTICEメッセージを発行するイベントトリガ関数の例を、以下に示します。
CREATE OR REPLACE FUNCTION tclsnitch() RETURNS event_trigger AS $$ elog NOTICE "tclsnitch: $TG_event $TG_tag" $$ LANGUAGE pltcl; CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE FUNCTION tclsnitch();