42.7. ФÑнкÑии ÑобÑÑийнÑÑ ÑÑиггеÑов в PL/Tcl
Ðа PL/Tcl можно напиÑаÑÑ ÑÑнкÑии ÑобÑÑийнÑÑ
ÑÑиггеÑов. Postgres Pro ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ ÐºÐ°Ðº ÑобÑÑийнÑй ÑÑиггеÑ, бÑла обÑÑвлена как ÑÑнкÑÐ¸Ñ Ð±ÐµÐ· аÑгÑменÑов и возвÑаÑала Ñип 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();