이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

51.2. 확장 성

the인터페이스는 a 액세스 방법이 필요한 높은 추상화 수준 데이터 유형의 의미론을 구현하기 위해서만 구현 자 접근 중. 그만큼레이어 그 자체는 동시성을 돌보고 나무를 기록하고 검색합니다. 구조.

a를 얻는 데 필요한 모든 것액세스 방법 작업 작동은 4 가지 사용자 정의 메소드를 구현하는 것입니다. 트리의 키의 동작과 키, 인덱스 값 및 색인 가능성 간의 관계 쿼리. 요컨대확장 성과 일반성, 코드 재사용 및 깨끗함을 결합합니다 인터페이스.

인덱스 연산자가 클래스하는 네 가지 방법제공해야합니다.

int 비교 (Datum A, Datum B)

키를 비교 (색인 값이 아님)를 비교하고 반환합니다 정수는 0, 0보다 적거나 0보다 큰 정수, 첫 번째 키가, 동일하거나, 또는 두 번째보다 큽니다.

Datum * ExtractValue (Datum InputValue, UINT32 * nkeys)

인덱스 할 값이 주어진 키 배열을 반환합니다. 반환 된 키의 수는에 저장되어야합니다.*nkeys.

Datum * ExtractQuery (Datum Query, UINT32 * nkeys, StrategyNumber n)

쿼리 할 값이 주어진 키 배열을 반환합니다. 즉,쿼리는 값입니다 왼쪽 인덱스 가능한 연산자의 오른쪽 측면은 색인화 된 열입니다.nIS 연산자 내 작업자의 전략 번호 클래스 (참조섹션 33.14.2). 자주,ExtractQuery상담해야합니다n데이터 유형을 결정하려면쿼리필요한 주요 값 추출됩니다. 반환 된 키의 수는 저장되어야합니다 안으로*nkeys.

bool 일관성 (Bool Check [], StrategyNumber n, Datum 질문)

인덱스 값이 쿼리를 만족하면 true를 반환합니다 전략 번호가있는 운영자n(또는 연산자가 다시 확인되는 경우 만족할 수 있습니다. 운영자 클래스). 그만큼check배열 이전 키와 같은 길이를 가지고 있습니다. 반품ExtractQuery이 쿼리. 의 각 요소check인덱스 값이라면 배열이 참입니다 해당 쿼리 키, 즉 if (Check [i] == TRUE)의 I-th 키ExtractQuery결과 배열이 있습니다 색인 값. 원래쿼리Datum (추출 된 키 어레이가 아님!) 의 경우를 대비하여 통과됩니다.일관성방법을 참조해야합니다 그것.