イベントトリガプロシージャを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 PROCEDURE tclsnitch();