이 섹션에서는 이벤트 토토 기능에 대한 인터페이스의 낮은 수준 세부 사항에 대해 설명합니다. 이 정보는 이벤트 토토 기능을 작성할 때만 필요합니다. 더 높은 수준의 언어를 사용하는 경우 이러한 세부 사항은 처리됩니다. 대부분의 경우 이벤트 토토를 작성하기 전에 절차 적 언어를 사용하는 것을 고려해야합니다. 각 절차 언어의 문서화는 해당 언어로 이벤트 토토를 작성하는 방법을 설명합니다..
이벤트 토토 함수는를 사용해야합니다.9다운로드2버전 1”기능 관리자 인터페이스.
이벤트 토토 관리자가 함수를 호출하면 일반 인수가 전달되지는 않지만 A 전달됩니다.“컨텍스트”포인터를 가리키는 포인터EventTriggerData
구조. C 기능은 매크로를 실행하여 이벤트 토토 관리자에서 호출되었는지 여부를 확인할 수 있습니다.
pall_as_event_trigger (fcinfo)
로 확장되는 :
((fcinfo)- context! = null && isa ((fcinfo)- context, eventtriggerData)
이것이 사실이 반환되면 캐스트하는 것이 안전합니다fcinfo- 컨텍스트
to typeEventTriggerData *
EventTriggerData
구조. 함수는not변경EventTriggerData
구조 또는 그것이 가리키는 데이터 중 하나입니다.
struct eventtriggerData
명령/event_trigger.h
:
typedef struct eventtriggerData nodetag 유형; Const Char *이벤트; / * 이벤트 이름 */ 노드 *파 세트; / * 구문 분석 트리 */ const char *태그; / * 명령 태그 */ eventTriggerData;
회원이 다음과 같이 정의되는 곳 :
type
항상t_eventtriggerData
.
이벤트
함수가 호출되는 이벤트를 설명합니다."DDL_COMMAND_START"
, "ddl_command_end"
, "SQL_DROP"
, "table_rewrite"
. 보다PostgreSQL : 문서 : 12 : 39.1. 이벤트 토토 캔 동작 개요이 사건의 의미는
Parsetree
명령의 구문 분석 트리에 대한 포인터. 자세한 내용은 PostgreSQL 소스 코드를 확인하십시오. 구문 분석 트리 구조는 통지없이 변경 될 수 있습니다.
tag
예를 들어 이벤트 트리거가 실행되는 이벤트와 관련된 명령 태그"기능 만들기"
.
이벤트 트리거 함수는 a를 반환해야합니다.NULL
포인터 (notSQL NULL 값, 즉 설정하지 않습니다isnull
true).