61 장. 테이블 윈 토토 방법 인터페이스 정의

이 장은 핵심 사이의 인터페이스를 설명합니다PostgreSQL시스템 및테이블 윈 토토 방법7641_7852

각 테이블 윈 토토 방법은의 행으로 설명됩니다.PG_AM시스템 카탈로그. 그만큼PG_AM항목 이름과 A를 지정합니다.핸들러 기능테이블 윈 토토 방법의 경우. 이 항목은를 사용하여 생성 및 삭제할 수 있습니다.윈 토토 방법 만들기삭제 윈 토토 방법SQL 명령.

테이블 윈 토토 메소드 핸들러 함수는 유형의 단일 인수를 수락하도록 선언해야합니다내부그리고 의사 유형을 반환하려면table_am_handler. 인수는 핸들러 기능이 SQL 명령에서 직접 호출되는 것을 방지하는 데 도움이되는 더미 값입니다.TableAmroutine8775_8972정적 const글로벌 범위의 변수. 그만큼TableAmroutinestruct, Access Method 's라고도합니다api struct, 콜백을 사용하여 윈 토토 방법의 동작을 정의합니다. 이 콜백은 일반 C 기능으로의 포인터이며 SQL 레벨에서는 보이거나 호출 할 수 없습니다.TableAmroutine구조 (콜백 요구 사항을 정의하는 구조물 내부의 주석 포함). 대부분의 콜백에는 래퍼 함수가 있으며 테이블 윈 토토 방법의 구현자가 아닌 사용자의 관점에서 문서화됩니다.src/include/access/tableam.h파일.

윈 토토 방법을 구현하려면 구현자는 일반적으로 구현해야합니다am-특이 적 유형의 튜플 테이블 슬롯 (참조src/include/executor/tuptable.h)는 윈 토토 방법 외부의 코드가 AM의 튜플에 대한 참조를 고정하고 튜플의 열에 윈 토토 할 수 있도록 허용합니다..

현재 AM이 실제로 데이터를 저장하는 방식은 상당히 제한되지 않습니다. 예를 들어 Postgres의 공유 버퍼 캐시를 사용하는 것이 가능하지만 필요하지는 않습니다.PostgreSQL의 표준 페이지 레이아웃에 설명 된대로섹션 65.6.

테이블 윈 토토 방법 API의 상당히 큰 제약 조건 API는 현재 AM이 수정 및/또는 인덱스를 지원하려면 각 튜플이 튜플 식별자 (를 가질 필요가 있다는 것입니다.tid) 블록 번호와 항목 번호로 구성된 (참조섹션 65.6). 의 하위 부분이 엄격히 필요하지 않습니다.tids예를 들어와 같은 의미를 갖습니다., 그러나 비트 맵 스캔 지원이 필요한 경우 (선택 사항) 블록 번호는 로컬을 제공해야합니다.

충돌 안전의 경우 AM은 Postgres '를 사용할 수 있습니다.Wal또는 사용자 정의 구현. 만약에Wal선택되었습니다.제네릭 월 레코드사용 가능 또는 ACustom Wal Resource Manager구현 될 수 있습니다.

단일 트랜잭션 내에서 다른 테이블 윈 토토 방법에 액세스 할 수있는 방식으로 트랜잭션 지원을 구현하려면 기계와 밀접하게 통합해야 할 것입니다.src/backend/access/transam/xlog.c.

새로운 개발자테이블 윈 토토 방법기존을 참조 할 수 있습니다src/backend/access/heap/heapam_handler.c구현에 대한 자세한 내용.

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면