イベントトリガ関数を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();