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

58.3.맞춤 사설 토토 실행

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

typedef struct customscanstate

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

58.3.1.사용자 정의 사설 토토 실행 콜백

void ( *begincustomscan) (CustomCscanstate *노드,

제공된 초기화 완료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 ( *probatedsmcustomScan) (CustomCscanstate *노드,

병렬 작업에 필요한 동적 공유 메모리의 양을 추정하십시오. 이것은 실제로 사용될 금액보다 높을 수 있지만 더 낮아서는 안됩니다.

void ( *InitializedSmcustomScan) (CustomsCanstate *노드,

병렬 작업에 필요한 동적 공유 메모리 초기화.좌표반환 값과 동일한 크기의 공유 메모리 영역을 가리 킵니다.추정 된 SMCUSTOMSCAN. 이 콜백은 선택 사항 이며이 사용자 지정 스캔 제공자가 병렬 실행을 지원하는 경우에만 제공해야합니다.

void ( *ReinitializedSmcustomScan) (CustomCscanstate *노드,

사용자 정의 스캔 계획 노드를 재조정 할 때 병렬 작업에 필요한 동적 공유 메모리를 다시 시작하십시오. 이 콜백은 선택 사항 이며이 사용자 지정 스캔 제공자가 병렬 실행을 지원하는 경우에만 제공해야합니다.rescancustomscan콜백은 로컬 상태 만 재설정합니다. 현재이 콜백은 이전에 호출됩니다rescancustomscan, 그러나 그 순서에 의존하지 않는 것이 가장 좋습니다.

void ( *initializeworkercustomScan) (CustomInScanstate *노드,

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

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

릴리스 리소스가 예상되면 노드가 완료되지 않을 것으로 예상됩니다. 이것은 모든 경우에 호출되는 것은 아닙니다.EndCustomScan이 기능이 먼저 호출되지 않으면 호출 될 수 있습니다. 이 콜백이 호출 된 직후 병렬 쿼리에서 사용되는 DSM 세그먼트가 파괴되므로 DSM 세그먼트가 사라지기 전에 약간의 조치를 취하려는 사용자 정의 스캔 제공 업체 가이 방법을 구현해야합니다..

void ( *expliccustomScan) (customscanstate *노드,

추가 정보 출력설명사용자 정의 사설 토토 계획 노드. 이 콜백은 선택 사항입니다.Scanstate는 대상 목록 및 사설 토토 관계와 같은이 콜백 없이도 표시되지만 콜백은 추가 개인 상태를 표시 할 수 있습니다.