41.7. Функции триггеров событий в PL/Tcl#

41.7. Функции триггеров событий в PL/Tcl

41.7. Функции триггеров событий в PL/Tcl #

Функции триггеров событий могут быть написаны на PL/Tcl. Tantor BE требует, чтобы функция, которая должна быть вызвана как триггер события, была объявлена как функция без аргументов и с типом возвращаемого значения 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();