2013-07-25 6 views
0

나는 다음과 같은 사용자 정의 유형이 있습니다는 PostgreSQL의 사용자 정의 유형에 대한 연산자/함수를 만듭니다 9.2

CREATE TYPE param_range AS ( 
    param smallint, 
    range int4range 
); 

다음 표 :

CREATE TABLE test4 
(
    id serial NOT NULL, 
    geo point, 
    ext param_range[] 
) 

다음 인덱스 :

CREATE INDEX ix_test4_geo ON test4 USING GIST ((geo)); 
CREATE INDEX ix_test4_ext on test4 USING GIN (ext); 

을 GIN 인덱스에는 사용자 정의 유형에 대한 연산자/함수가 필요합니다. 어떻게해야합니까?

답변

2

GIN 색인은 사용자 지정 연산자를 요구하지 않습니다. 그것은 모든 사업자가 필요합니다. 기본적으로 다음을 수행해야합니다 :

  1. GIN opclasses 관련 문서를 참조하십시오.

  2. IMMUTABLE 함수 세트를 작성하여 처리하십시오.

  3. 해당 기능을 기반으로 일련의 연산자를 작성하십시오.

  4. 사용자 정의 연산자 클래스로 함께 묶습니다.

이것은 단순하고 적은 양의 작업이 아닙니다. 귀하의 유형과 관련하여 "겹치는"것은 무엇을 의미합니까? "따라서 설계 단계에서 상당한 시간을 소비 할 것으로 예상해야합니다.

기본적으로 GIST/GIN은 스토리지뿐만 아니라 운영을위한 사용자 정의 유형을 디자인하고 있습니다.이 프로젝트입니다.

+0

감사합니다. 크리스.이 문서는 온라인 문서를 깊이 파헤 쳐보고 나니 아무도 대답하지 못했을 때 떠올랐다. – IamIC

+0

확장 하시겠습니까? 포인트 번호 4에 조금? 나는 여기에 질문을했습니다 : http://stackoverflow.com/q/34407438/1319179 – losthorse