이 섹션에서는 이벤트 트리거 기능에 대한 인터페이스의 하위 수준 세부정보를 설명합니다. 이 정보는 C에서 이벤트 트리거 함수를 작성할 때만 필요합니다. 고급 언어를 사용하는 경우 이러한 세부 정보가 자동으로 처리됩니다. 대부분의 경우 C로 이벤트 트리거를 작성하기 전에 절차적 언어 사용을 고려해야 합니다. 각 절차적 언어 문서에는 해당 언어로 이벤트 트리거를 작성하는 방법이 설명되어 있습니다.
이벤트 트리거 기능은 다음을 사용해야 합니다.“버전 1”기능 관리자 인터페이스.
이벤트 토토 관리자가 함수를 호출하면 일반 인수가 전달되지 않지만 a가 전달됩니다.“컨텍스트”a를 가리키는 포인터EventTriggerData구조. C 함수는 매크로를 실행하여 이벤트 토토 관리자에서 호출되었는지 여부를 확인할 수 있습니다.
CALLED_AS_EVENT_TRIGGER(fcinfo)
다음으로 확장:
((fcinfo)-컨텍스트 != NULL && IsA((fcinfo)-컨텍스트, EventTriggerData))
이 결과가 true이면 전송해도 안전합니다.fcinfo-컨텍스트입력EventTriggerData *그리고 가리키는 것을 활용EventTriggerData구조. 이 기능은 다음과 같아야 합니다.아님변경EventTriggerData구조 또는 그것이 가리키는 데이터.
구조 EventTriggerData다음에 정의됨명령/event_trigger.h:
typedef 구조체 EventTriggerData
NodeTag 유형;
const char *이벤트; /* 이벤트 이름 */
노드 *parsetree; /* 구문 분석 트리 */
CommandTag 태그; /* 명령 태그 */
EventTriggerData;
여기서 구성원은 다음과 같이 정의됩니다.
유형항상T_EventTriggerData.
이벤트함수가 호출되는 이벤트를 설명합니다. 다음 중 하나입니다."로그인", "ddl_command_start", "ddl_command_end", "sql_drop", "table_rewrite". 참조PostgreSQL : 문서 : 18 : 38.1. 이벤트 토토 사이트 동작 개요이 사건의 의미에 대해.
파싱 트리명령의 구문 분석 트리에 대한 포인터. 자세한 내용은 PostgreSQL 소스 코드를 확인하세요. 구문 분석 트리 구조는 예고 없이 변경될 수 있습니다.
태그이벤트 트리거가 실행되는 이벤트와 연관된 명령 태그, 예를 들어"함수 생성".
이벤트 트리거 함수는 다음을 반환해야 합니다.NULL포인터 (아님SQL null 값, 즉 설정하지 않음isNull참).
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.