40.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 PROCEDURE tclsnitch();