이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 58 장. 테이블 토토 결과 방법 작성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

57 장. 테이블 토토 캔 방법 작성

PostgreSQL의 구현테이블 샘플조항은 사용자 정의 테이블 샘플링 방법을 지원하고BernoulliandSystemSQL 표준에 필요한 방법. 토토 캔 방법은 테이블의 어떤 행을 선택할 때를 선택합니다.테이블 샘플조항이 사용됩니다.

SQL 레벨에서 테이블 샘플링 방법은 단일 SQL 기능으로 표시되며, 일반적으로 C로 구현되어 서명

method_name (내부) TSM_HANDLER를 반환

함수의 이름은 동일한 메소드 이름입니다.테이블 샘플절. 그만큼내부인수는 단순히이 함수가 SQL 명령에서 직접 호출되는 것을 방지하는 역할을하는 더미 (항상 값이 0 인)입니다. 함수의 결과는 palloc'd 유형의 구조 여야합니다tsmroutine, 여기에는 샘플링 방법에 대한 기능을 지원하기위한 포인터가 포함되어 있습니다. 이러한 지원 기능은 일반 C 기능이며 SQL 레벨에서는 보이거나 호출 할 수 없습니다. 지원 기능은에 설명되어 있습니다.PostgreSQL : 문서 : 12 : 57.1. 토토 캔 방법 지원 기능.

함수 포인터 외에도tsmroutine구조는 이러한 추가 필드를 제공해야합니다 :

List *ParameterTypes

이것은에 의해 수락 될 매개 변수의 데이터 유형 OID를 포함하는 OID 목록입니다.테이블 샘플이 토토 캔 방법이 사용될 때의 절. 예를 들어, 내장 방법의 경우이 목록은 값이있는 단일 항목을 포함합니다float4oid는 토토 캔 백분율을 나타냅니다. 사용자 정의 토토 캔 메소드는 더 많은 또는 다른 매개 변수를 가질 수 있습니다.

bool reportable_across_queries

iftrue, 토토 캔 방법은 동일한 매개 변수 인 경우 연속 쿼리에서 동일한 샘플을 전달할 수 있습니다.반복 가능한종자 값은 매번 제공되며 테이블 내용은 변경되지 않았습니다. 이것이 일 때거짓, The반복 가능한조항은 토토 캔 방법과 함께 사용하기 위해 허용되지 않습니다.

bool repeatable_across_scans

iftrue, 토토 캔 방법은 동일한 쿼리에서 연속 스캔에서 동일한 샘플을 전달할 수 있습니다 (변하지 않는 매개 변수, 시드 값 및 스냅 샷을 가정). 이것이 일 때false, 플래너는 토토 캔 된 테이블을 두 번 이상 스캔 해야하는 요금제를 선택하지 않으므로 일관되지 않은 쿼리 출력이 발생할 수 있으므로.

theTSMROUTINEstruct 유형은src/include/access/tsmapi.h, 추가 세부 사항을 참조하십시오.

표준 분포에 포함 된 테이블 샘플링 방법은 자신의 글을 쓰려고 할 때 좋은 참조입니다. 조사SRC/백엔드/액세스/테이블 샘플내장 토토 캔 방법에 대한 소스 트리의 하위 디렉토리 및Contrib애드온 방법에 대한 하위 디렉토리.