| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.4 : 데이터 토토 캔 가시성 | PostgreSQL : 문서 : 9.4 : 토토 | 36장. 스포츠 토토 결과 | 배트맨 토토 : 문서 : 9.4 : 완전한 트리거 예 |
이 섹션에서는 스포츠 토토 결과 기능 인터페이스의 하위 수준 세부정보를 설명합니다. 이 정보는 C에서 스포츠 토토 결과 함수를 작성할 때만 필요합니다. 고급 언어를 사용하는 경우 이러한 세부 정보가 자동으로 처리됩니다. 대부분의 경우 C로 스포츠 토토 결과를 작성하기 전에 절차적 언어 사용을 고려해야 합니다. 각 절차적 언어 문서에는 해당 언어로 스포츠 토토 결과를 작성하는 방법이 설명되어 있습니다.
스포츠 토토 결과 기능은 다음을 사용해야 합니다."버전 1"함수 관리자 인터페이스.
스포츠 토토 결과 관리자가 함수를 호출하면 일반 인수가 전달되지 않지만 a가 전달됩니다."컨텍스트"a를 가리키는 포인터스포츠 토토 결과데이터구조. C 함수는 매크로를 실행하여 스포츠 토토 결과 관리자에서 호출되었는지 여부를 확인할 수 있습니다.
CALLED_AS_TRIGGER(fcinfo)
다음으로 확장:
((fcinfo)-컨텍스트 != NULL && IsA((fcinfo)-컨텍스트, TriggerData))
이것이 true를 반환하면 전송하는 것이 안전합니다.fcinfo-컨텍스트입력하려면스포츠 토토 결과데이터 *그리고 가리키는 것을 활용스포츠 토토 결과데이터구조. 이 기능은 다음과 같아야 합니다.아님변경스포츠 토토 결과데이터구조 또는 그것이 가리키는 데이터.
구조 TriggerData다음에 정의됨명령/trigger.h:
typedef 구조체 TriggerData
NodeTag 유형;
TriggerEvent tg_event;
관계 tg_relation;
힙튜플 tg_trigtuple;
힙튜플 tg_newtuple;
스포츠 토토 결과 *tg_trigger;
버퍼 tg_trigtuplebuf;
버퍼 tg_newtuplebuf;
TriggerData;
여기서 구성원은 다음과 같이 정의됩니다:
항상T_TriggerData.
함수가 호출되는 이벤트를 설명합니다. 다음 매크로를 사용하여 조사할 수 있습니다.tg_event:
작업 전에 스포츠 토토 결과가 실행되면 참을 반환합니다.
작업 후 스포츠 토토 결과가 실행되면 true를 반환합니다.
작업 대신 스포츠 토토 결과가 실행되면 true를 반환합니다.
행 수준 이벤트에 대해 스포츠 토토 결과가 실행되면 참을 반환합니다.
문 수준 이벤트에 대해 스포츠 토토 결과가 실행되면 참을 반환합니다.
스포츠 토토 결과가 다음에 의해 실행된 경우 참을 반환합니다.삽입명령.
스포츠 토토 결과가 다음에 의해 실행된 경우 참을 반환합니다.업데이트명령.
스포츠 토토 결과가 다음에 의해 실행된 경우 참을 반환합니다.삭제명령.
스포츠 토토 결과가 다음에 의해 실행된 경우 참을 반환합니다.잘라내기명령.
스포츠 토토 결과가 실행된 관계를 설명하는 구조에 대한 포인터입니다. 보세요utils/rel.h이 구조에 대한 자세한 내용을 확인하세요. 가장 흥미로운 점은 다음과 같습니다.tg_relation-rd_att(관계 튜플의 설명자) 및tg_relation-rd_rel-relname(관계 이름; 유형이 아님문자*하지만이름데이터; 사용SPI_getrelname(tg_relation)을 얻으려면문자*이름 사본이 필요한 경우).
스포츠 토토 결과가 실행된 행에 대한 포인터입니다. 삽입, 업데이트 또는 삭제되는 행입니다. 이 스포츠 토토 결과가 다음에 대해 실행된 경우삽입또는삭제다음 행을 다른 행으로 바꾸지 않으려면 함수에서 반환해야 하는 내용입니다(의 경우삽입) 또는 작업을 건너뜁니다. 외부 테이블에 대한 스포츠 토토 결과의 경우 여기에 있는 시스템 열의 값이 지정되지 않습니다.
스포츠 토토 결과가 다음에 대해 실행된 경우 행의 새 버전에 대한 포인터업데이트및NULL만약에 대한 것이라면삽입또는 a삭제. 이벤트가 다음과 같은 경우 함수에서 반환해야 하는 내용입니다.업데이트그리고 당신은 이 행을 다른 행으로 교체하거나 작업을 건너뛰기를 원하지 않습니다. 외부 테이블에 대한 스포츠 토토 결과의 경우 여기에 있는 시스템 열의 값이 지정되지 않습니다.
유형의 구조에 대한 포인터스포츠 토토 결과, 정의됨utils/reltrigger.h:
typedef 구조체 스포츠 토토 결과
이드 tgoid;
char *tgname;
Oid tgfoid;
int16 tgtype;
차트 활성화;
bool tgisinternal;
Oid tgconstrrelid;
Oid tgconstrindid;
Oid tg제약;
bool tgdeferrable;
bool tginitdeferred;
int16 tgnars;
int16 tgnattr;
int16 *tgattr;
char **tgargs;
char *tgqual;
스포츠 토토 결과;
어디에서tgname스포츠 토토 결과의 이름입니다.tgnars는 다음의 인수 수입니다.tgargs및tgargs은에 지정된 인수에 대한 포인터 배열입니다.스포츠 토토 결과 생성성명. 다른 구성원은 내부 전용입니다.
다음을 포함하는 버퍼tg_trigttuple또는잘못된 버퍼그러한 튜플이 없거나 디스크 버퍼에 저장되지 않은 경우.
다음을 포함하는 버퍼tg_newtuple또는잘못된 버퍼그러한 튜플이 없거나 디스크 버퍼에 저장되지 않은 경우.
스포츠 토토 결과 함수는 다음 중 하나를 반환해야 합니다.HeapTuple포인터 또는 aNULL포인터 (아님SQL null 값, 즉 설정하지 않음isNull참). 다음 중 하나를 반환할 때는 주의하세요.tg_trigttuple또는tg_newtuple, 작업 중인 행을 수정하지 않으려는 경우 적절합니다.