이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 61 장. 테이블 윈 토토 방법 인터페이스 정의버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

62장. 테이블 스포츠 토토 사이트 방법 인터페이스 정의

이 장에서는 코어 사이의 인터페이스를 설명합니다.포스트그레SQL시스템 및테이블 스포츠 토토 사이트 방법8347_8560

각 테이블 스포츠 토토 사이트 방법은 다음 행에 설명되어 있습니다.pg_am시스템 카탈로그.pg_am항목은 이름을 지정하고핸들러 함수테이블 스포츠 토토 사이트 방법입니다. 이러한 항목은 다음을 사용하여 생성 및 삭제할 수 있습니다.스포츠 토토 사이트 방법 생성그리고삭제 스포츠 토토 사이트 방법SQL 명령.

테이블 액세스 메소드 핸들러 함수는 유형의 단일 인수를 허용하도록 선언되어야 합니다.내부그리고 의사 유형을 반환합니다table_am_handler. 인수는 단순히 SQL 명령에서 핸들러 함수가 직접 호출되는 것을 방지하는 역할을 하는 더미 값입니다.

다음은 확장 SQL 스크립트 파일이 테이블 스포츠 토토 사이트 방법 핸들러를 생성하는 방법입니다:

함수 생성 또는 교체 my_tableam_handler(내부)
  RETURNS table_am_handler AS 'my_extension', 'my_tableam_handler'
  언어 C 엄격;

스포츠 토토 사이트 방법 생성 myam 유형 테이블 핸들러 my_tableam_handler;

함수의 결과는 유형의 구조체에 대한 포인터여야 합니다TableAmRoutine, 여기에는 테이블 스포츠 토토 사이트 방법을 사용하기 위해 핵심 코드가 알아야 하는 모든 내용이 포함되어 있습니다. 반환 값은 서버 수명이어야 하며 일반적으로 다음과 같이 정의하여 달성됩니다.정적 상수전역 범위의 변수입니다.

테이블 스포츠 토토 사이트 방법 핸들러가 있는 소스 파일은 다음과 같습니다.

#include "postgres.h"

#include "access/tableam.h"
#include "fmgr.h"

PG_MODULE_MAGIC;

정적 const TableAmRoutine my_tableam_methods = 
    .type = T_TableAmRoutine,

    /* 예제에서 생략된 TableAmRoutine의 메서드를 여기에 추가합니다. */
;

PG_FUNCTION_INFO_V1(my_tableam_handler);

데이텀
my_tableam_handler(PG_FUNCTION_ARGS)

    PG_RETURN_POINTER(&my_tableam_methods);

TableAmRoutine구조체, 스포츠 토토 사이트 방법이라고도 함API 구조체, 콜백을 사용하여 스포츠 토토 사이트 방법의 동작을 정의합니다. 이러한 콜백은 일반 C 함수에 대한 포인터이며 SQL 수준에서는 표시되거나 호출할 수 없습니다. 모든 콜백과 해당 동작은TableAmRoutine구조(콜백 요구사항을 정의하는 구조 내부의 주석 포함). 대부분의 콜백에는 테이블 스포츠 토토 사이트 방법의 (구현자가 아닌) 사용자의 관점에서 문서화된 래퍼 함수가 있습니다. 자세한 내용은 다음을 참조하세요.src/include/access/tableam.h파일.

액세스 방법을 구현하려면 구현자는 일반적으로 다음을 구현해야 합니다.오전특정 유형의 튜플 테이블 슬롯(참조src/include/executor/tuptable.h), 이는 스포츠 토토 사이트 메서드 외부의 코드가 AM의 튜플에 대한 참조를 보유하고 튜플의 열에 스포츠 토토 사이트할 수 있도록 허용합니다.

현재 AM이 실제로 데이터를 저장하는 방식은 상당히 제한이 없습니다. 예를 들어, postgres의 공유 버퍼 캐시를 사용하는 것이 가능하지만 필수는 아닙니다. 사용되는 경우 사용하는 것이 합리적일 수 있습니다.포스트그레SQL에 설명된 표준 페이지 레이아웃PostgreSQL : 문서 : 개발 : 66.6. 데이터베이스 토토 결과 레이아웃.

테이블 스포츠 토토 사이트 방법 API의 상당히 큰 제약 중 하나는 현재 AM이 수정 및/또는 색인을 지원하려는 경우 각 튜플이 튜플 식별자를 가져야 한다는 것입니다(TID12833_12895PostgreSQL : 문서 : 개발 : 66.6. 데이터베이스 토토 결과 레이아웃). 반드시 다음 하위 부분이 반드시 필요한 것은 아닙니다.TID예를 들어 다음과 같은 의미를 갖습니다., 그러나 비트맵 스캔 지원이 필요한 경우(선택 사항) 블록 번호는 지역성을 제공해야 합니다.

충돌 안전을 위해 AM은 postgres를 사용할 수 있습니다.WAL또는 맞춤 구현. 만일WAL둘 중 하나가 선택됨일반 WAL 레코드사용할 수 있습니다. 또는 aPostgreSQL : 문서구현 가능합니다.

단일 트랜잭션 내에서 다양한 테이블 스포츠 토토 사이트 방법에 액세스할 수 있도록 허용하는 방식으로 트랜잭션 지원을 구현하려면 다음의 기계와 긴밀하게 통합해야 할 가능성이 높습니다.src/backend/access/transam/xlog.c.

새로운 개발자테이블 스포츠 토토 사이트 방법기존 참조 가능다음에 구현 있음src/backend/access/heap/heapam_handler.c구현에 대한 자세한 내용을 확인하세요.