F.19. intarray - 스포츠 토토 베트맨의 배열 조작#

theintarray모듈은 널없는 스포츠 토토 베트맨를 조작하기위한 여러 가지 유용한 기능과 연산자를 제공합니다. 일부 연산자를 사용하여 인덱스 검색을 지원합니다.

제공된 배열에 널 요소가 포함 된 경우 이러한 모든 작업에 오류가 발생합니다.

이러한 작업 중 다수는 1 차원 배열에만 합리적입니다. 더 많은 치수의 입력 배열을 수락하지만 데이터는 스토리지 순서의 선형 배열 인 것처럼 취급됩니다.

이 모듈이 고려됩니다신뢰할 수있는Create현재 데이터베이스의 권한.

F.19.1. intarray기능 및 연산자#

intarray모듈에 표시테이블 F.8, 연산자테이블 F.9.

표 F.8. intarray기능

기능

설명

예제

iCount ( 스포츠 토토 베트맨 []) →스포츠 토토 베트맨

배열의 요소 수를 반환합니다.

iCount ( '1,2,3':: 스포츠 토토 베트맨 [])3

Sort ( 스포츠 토토 베트맨 [], dir 텍스트) →스포츠 토토 베트맨 []

배열을 오름차순 또는 내림차순으로 정렬합니다.dirASC또는desc.

sort ( '1,3,2':: 스포츠 토토 베트맨 [], 'desc'){3,2,1}

Sort ( 스포츠 토토 베트맨 []) →스포츠 토토 베트맨 []

Sort_asc ( 스포츠 토토 베트맨 []) →스포츠 토토 베트맨 []

오름차순 순서로 정렬.

sort (배열 [11,77,44]){11,44,77}

Sort_desc ( 스포츠 토토 베트맨 []) →스포츠 토토 베트맨 []

내림차순으로 정렬.

Sort_desc (배열 [11,77,44]){77,44,11}

UNIQ ( 스포츠 토토 베트맨 []) →스포츠 토토 베트맨 []

인접한 복제를 제거합니다. 자주Sort모든 복제물을 제거하려면

uniq ( '1,2,2,3,1,1':: 스포츠 토토 베트맨 []){1,2,3,1}

uniq (sort ( '1,2,3,2,1':: integer []){1,2,3}

idx ( 스포츠 토토 베트맨 [], 항목 스포츠 토토 베트맨) →스포츠 토토 베트맨

첫 번째 배열 요소 일치의 인덱스를 반환항목또는 일치하지 않으면 0.

idx (배열 [11,22,33,22,11], 22)2

서브 어레이 ( 스포츠 토토 베트맨 [], 시작 스포츠 토토 베트맨, Len 스포츠 토토 베트맨) →스포츠 토토 베트맨 []

위치에서 시작하는 배열 부분을 추출시작, withLen요소.

서브 어레이 ( '1,2,3,2,1':: 스포츠 토토 베트맨 [], 2, 3){2,3,2}

서브 어레이 ( 스포츠 토토 베트맨 [], 시작 스포츠 토토 베트맨) →스포츠 토토 베트맨 []

위치에서 시작하는 배열 부분을 추출시작.

서브 어레이 ( '1,2,3,2,1':: 스포츠 토토 베트맨 [], 2){2,3,2,1}

intset ( 스포츠 토토 베트맨) →스포츠 토토 베트맨 []

단일 요소 배열을 만듭니다.

intset (42){42}


표 F.9. intarray연산자

운영자

설명

스포츠 토토 베트맨 [] && 스포츠 토토 베트맨 []부울

어레이 오버랩 (적어도 하나의 요소가있는)?

스포츠 토토 베트맨 [] @> 스포츠 토토 베트맨 []부울

왼쪽 배열이 오른쪽 배열을 포함합니까?

스포츠 토토 베트맨 [] <@ 스포츠 토토 베트맨 []부울

오른쪽 배열에 포함되어 있습니까?

# 스포츠 토토 베트맨 []스포츠 토토 베트맨

배열의 요소 수를 반환합니다.

스포츠 토토 베트맨 [] # 스포츠 토토 베트맨스포츠 토토 베트맨

올바른 인수와 일치하는 첫 번째 배열 요소의 인덱스를 반환하거나 일치하지 않으면 0. (동일idx기능.)

스포츠 토토 베트맨 [] + 스포츠 토토 베트맨스포츠 토토 베트맨 []

배열 끝에 요소를 추가합니다.

스포츠 토토 베트맨 [] + 스포츠 토토 베트맨 []스포츠 토토 베트맨 []

배열을 연결합니다.

스포츠 토토 베트맨 [] - 스포츠 토토 베트맨스포츠 토토 베트맨 []

배열에서 올바른 인수와 일치하는 항목을 제거합니다.

스포츠 토토 베트맨 [] - 스포츠 토토 베트맨 []스포츠 토토 베트맨 []

왼쪽 배열에서 오른쪽 배열의 요소를 제거합니다.

스포츠 토토 베트맨 [] | 스포츠 토토 베트맨스포츠 토토 베트맨 []

논증의 조합을 계산합니다.

스포츠 토토 베트맨 [] | 스포츠 토토 베트맨 []스포츠 토토 베트맨 []

논증의 조합을 계산합니다.

스포츠 토토 베트맨 [] & 스포츠 토토 베트맨 []스포츠 토토 베트맨 []

인수의 교차점을 계산합니다.

스포츠 토토 베트맨 [] @@ query_int부울

배열은 쿼리를 만족합니까? (아래 참조)

query_int ~~ 스포츠 토토 베트맨 []부울

배열은 쿼리를 충족합니까? (의 정류자@@)


연산자&&, @>and<@PostgreSQL의 내장 연산자는 동일한 이름의 내장 연산자가 널을 포함하지 않는 스포츠 토토 베트맨 배열에서만 작동하지만 내장 연산자는 모든 어레이 유형에서 작동합니다. 이 제한은 많은 경우 내장 운영자보다 빠르게 가능합니다.

the@@and~~운영자는 배열이 A를 충족하는지 테스트합니다.쿼리, 전문 데이터 유형의 값으로 표현query_int. 에이쿼리어레이의 요소에 대해 점검되는 스포츠 토토 베트맨 값으로 구성되며 연산자를 사용하여 결합 가능&(및),|(또는) 및!(아님). 괄호는 필요에 따라 사용할 수 있습니다.1 & (2 | 3)1을 포함하고 2 또는 3을 포함하는 어레이를 일치시킵니다.

F.19.2. 인덱스 지원#

intarray&&, @>@@운영자 및 일반 배열 평등.

두 개의 매개 변수화 된 GIST 인덱스 연산자 클래스가 제공됩니다 :gist__int_ops(기본적으로 사용)는 중소형 데이터 세트에 적합하지만gist__intbig_ops더 큰 서명을 사용하고 큰 데이터 세트 (즉, 다수의 고유 한 배열 값을 포함하는 열)를 인덱싱하는 데 더 적합합니다. 구현은 손실 압축이 내장 된 RD-Tree 데이터 구조를 사용합니다.

gist__int_ops스포츠 토토 베트맨 범위의 배열로 스포츠 토토 베트맨 세트를 근사화합니다. 선택적 스포츠 토토 베트맨 매개 변수Numranges하나의 인덱스 키에서 최대 범위의 범위 수를 결정합니다. 의 기본값Numranges는 100입니다. 유효한 값은 1에서 253 사이입니다. GIST 인덱스 키가 더 정확한 검색으로 이어지는 더 큰 배열을 사용합니다 (더 큰 인덱스 비용으로 더 적은 부분과 더 적은 힙 페이지를 스캔).

gist__intbig_ops비트 맵 서명으로 스포츠 토토 베트맨 세트를 근사화합니다. 선택적 스포츠 토토 베트맨 매개 변수Siglen시그니처 길이를 바이트로 결정합니다. 기본 서명 길이는 16 바이트입니다.

비 기본 진 운영자 클래스도 있습니다gin__int_ops,이 연산자와 지원을 지원하는<@.

GIST와 GIN 인덱싱 사이의 선택은 GIST와 GIN의 상대적 성능 특성에 따라 다릅니다.

F.19.3. 예#

- 메시지는 하나 이상일 수 있습니다섹션테이블 메시지 작성 (Mid int 기본 키, 섹션 int [], ...);

F.19.4. 기준#

소스 디렉토리Contrib/Intarray/Bench벤치 마크 테스트 스위트가 포함되어 있으며 설치된대로 실행할 수 있습니다PostgreSQL서버. (또한 필요DBD :: PG설치하려면.) 실행 :

CD .../contrib/intarray/벤치

thebench.pl스크립트는 많은 옵션이 있으며,이 옵션은 인수없이 실행될 때 표시됩니다.

F.19.5. 저자#

모든 작업은 Teodor Sigaev (에 의해 수행되었습니다.) 및 Oleg Bartunov (). 보다http://www.sai.msu.su/~megera/postgres/gist/추가 정보. Andrey Oktyabrski는 새로운 기능과 운영을 추가하는 데 큰 노력을 기울였습니다.

정정 제출

29694_29888이 양식문서 문제를보고하려면