이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 59.3. 맞춤 젠 토토 베이 실행버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

57.3. 맞춤 젠 토토 실행

aCustomScan실행되고, 실행 상태는 A로 표시됩니다.CustomScanstate, 다음과 같이 선언됩니다.

typedef struct customscanstate

    ScanState SS;
    UINT32 플래그;
    Const CustomeXecMethods *메소드;
 customscanstate;

SS젠 토토이 기본 관계가 아닌 조인을위한 경우를 제외하고 다른 젠 토토 상태와 같이 초기화됩니다.ss.ss_currentrelation가 남은 상태입니다.플래그|CustomPathandCustomScan. Methods필요한 사용자 정의 젠 토토 상태 메소드를 구현하는 (일반적으로 정적으로 할당 된) 객체를 가리켜야합니다. 일반적으로 aCustomScanstate, 지원할 필요가없는CopyObject, 실제로 위의 첫 번째 멤버로 위의 더 큰 구조가 될 것입니다.

57.3.1. 사용자 정의 젠 토토 실행 콜백

void ( *begincustomscan) (CustomsCanstate *노드,
                         부동산 *부동산,
                         int eflags);

제공된 초기화 완료CustomScanstate. 표준 필드는에 의해 초기화되었습니다.execinitCustomScan, 그러나 모든 개인 필드는 여기에서 초기화되어야합니다.

tupletablesLot *( *execcustomScan) (CustomCscanState *노드);

다음 젠 토토 튜플 가져 오기. 튜플이 남아 있으면 채워야PS_RESULTTUPLESLOT현재 젠 토토 방향의 다음 튜플을 사용한 다음 튜플 슬롯을 반환합니다. 그렇지 않다면null또는 빈 슬롯을 반환해야합니다.

void ( *endCustomScan) (CustomCscanState *노드);

|CustomScanstate. 이 방법이 필요하지만 관련 데이터가 없거나 자동으로 정리 될 경우 아무것도 할 필요는 없습니다..

void ( *rescancustomScan) (CustomCscanState *노드);

현재 젠 토토을 시작으로 되 돌리고 관계를 구제 할 준비를합니다.

void ( *markposcustomScan) (CustomCsCanstate *노드);

다음에 의해 복원 될 수 있도록 현재 젠 토토 위치를 저장SectoscustomScan콜백. 이 콜백은 선택 사항이며 인 경우에만 제공해야합니다.custompath_support_mark_restore플래그가 설정되었습니다.

void ( *sectoscustomScan) (customscanstate *node);

이전 젠 토토 위치를 복원하여MarkposcustomScan콜백. 이 콜백은 선택 사항이며 인 경우에만 제공해야합니다.custompath_support_mark_restore플래그가 설정되었습니다.

size ( *prosedsmcustomScan) (CustomCscanstate *노드,
                               ParallelContext *pcxt);

병렬 작업에 필요한 동적 공유 메모리의 양을 추정하십시오. 이것은 실제로 사용될 금액보다 높을 수 있지만 더 낮아서는 안됩니다. 반환 값은 바이트입니다. 이 콜백은 선택 사항 이며이 사용자 지정 젠 토토 제공자가 병렬 실행을 지원하는 경우에만 제공해야합니다.

void ( *InitializedSmcustomScan) (CustomCscanstate *노드,
                                 ParallelContext *pcxt,
                                 무효 *좌표);

병렬 작동에 필요한 동적 공유 메모리 초기화;좌표ret추정 된 SMCUSTOMSCAN. 이 콜백은 선택 사항 이며이 사용자 지정 젠 토토 제공자가 병렬 실행을 지원하는 경우에만 제공해야합니다.

void ( *initializeworkercustomScan) (CustomInScanstate *노드,
                                    shm_toc *toc,
                                    무효 *좌표);

|초기화 된 SMCUSTOMSCAN. 이 콜백은 선택 사항 이며이 사용자 지정 경로가 병렬 실행을 지원하는 경우에만 제공됩니다.

void ( *expliccustomScan) (customscanstate *노드,
                           목록 *조상,
                           설명 *es);

추가 정보 출력설명사용자 정의 젠 토토 계획 노드. 이 콜백은 선택 사항입니다. 에 저장된 공통 데이터ScanState, 예를 들어 대상 목록 및 젠 토토 관계와 같은이 콜백 없이도 표시되지만 콜백은 추가 개인 상태를 표시 할 수 있습니다..