이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대한 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 59.2. 맞춤형 토토 사이트 계획 만들기버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

57.2. 맞춤형 토토 핫 계획 만들기

사용자 정의 토토 핫은 다음 구조를 사용하여 완성 된 계획 트리에 표시됩니다.

typedef struct customscan

토토 핫추정 비용, 목표 목록, 자격 등을 포함하여 다른 토토 핫과 같이 초기화되어야합니다..플래그|CustomPath.custom_plans아동을 저장하는 데 사용할 수 있습니다plan노드.custom_exprs|setrefs.candsubSelect.c, whilecustom_private사용자 정의 토토 핫 제공자 자체에서만 사용되는 다른 개인 데이터를 저장하는 데 사용해야합니다.custom_scan_tlist기본 관계를 토토 핫 할 때는 NIL 일 수 있습니다. 이는 사용자 정의 토토 핫이 기본 관계의 행 유형과 일치하는 토토 핫 튜플을 반환합니다. 그렇지 않으면 실제 토토 핫 튜플을 설명하는 대상 목록입니다.custom_scan_tlist조인을 위해 제공되어야하며 사용자 정의 토토 핫 제공자가 비 VAR 표현식을 계산할 수있는 경우 토토 핫을 위해 제공 될 수 있습니다.custom_relids이 토토 핫 노드 핸들링의 관계 세트 (범위 테이블 인덱스)에 대한 핵심 코드에 의해 설정됩니다. 이 토토 핫이 Join을 교체하는 경우를 제외하고는 회원이 한 명뿐입니다.Methods필요한 사용자 정의 토토 핫 방법을 구현하는 (일반적으로 정적으로 할당 된) 객체를 가리려면 아래에 자세히 설명되어 있어야합니다.

언제CustomScan단일 관계를 토토 핫합니다scan.scanrelid토토 핫 할 테이블의 범위 테이블 인덱스 여야합니다. 조인을 대체 할 때Scan.Scanrelid0이어야합니다.

계획 트리는 사용하여 복제 할 수 있어야합니다CopyObject"Custom"필드는 해당 함수가 처리 할 수있는 노드로 구성되어야합니다. 또한 사용자 정의 토토 핫 제공자는 A를 포함시키는 더 큰 구조를 대체 할 수 없습니다.CustomScan구조 자체의 경우CustomPath또는CustomScanstate.

57.2.1. 맞춤형 토토 핫 계획 콜백

노드 *( *CreateCustomScanstate) (CustomCSCAN *CSCAN);

할당 aCustomScanstatethisCustomScan. 실제 할당은 종종 평범한 것에 필요한 것보다 클 것입니다CustomScanstate, 많은 공급자가 더 큰 구조의 첫 번째 필드로 포함시키기를 원하기 때문입니다. 반환 된 값에는 노드 태그와가 있어야합니다.Methods적절하게 설정했지만 다른 필드는이 단계에서 0으로 남겨 져야합니다. 후에execinitCustomScan기본 초기화 수행,BegincustomScan콜백이 호출되어 사용자 정의 토토 핫 제공자에게 필요한 모든 것을 할 수있는 기회를 제공합니다.