이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : F.10. 메이저 토토 사이트-다차원 메이저 토토 사이트 데이터 유형버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.4. 메이저 토토 사이트

이 모듈은 데이터 유형을 구현합니다.메이저 토토 사이트다차원 메이저 토토 사이트를 표현하기 위한 것입니다.

F.4.1. 구문

다음은 유효한 외부 표현입니다.메이저 토토 사이트유형.x, y등 부동 소수점 숫자를 나타냅니다:

표 F-1. 메이저 토토 사이트 외부 표현

x 1차원 점(또는 길이가 0인 점) 1차원 간격)
(x) 위와 동일
x1,x2,...,xn n차원 공간의 한 점으로 표현됨 내부적으로 볼륨이 없는 메이저 토토 사이트로
(x1,x2,...,xn) 위와 동일
(x),(y) 다음에서 시작하는 1차원 간격x그리고 종료 시간:y또는 그 반대로; 주문은 상관없어
[(x),(y)] 위와 동일
(x1,...,xn),(y1,...,yn) 한 쌍으로 표현되는 n차원 메이저 토토 사이트 대각선으로 반대쪽 모서리
[(x1,...,xn),(y1,...,yn)] 위와 동일

반대쪽 모서리의 순서는 중요하지 않습니다. 메이저 토토 사이트가 입력됩니다.메이저 토토 사이트함수 유니폼을 만드는 데 필요한 경우 자동으로 값을 교환"왼쪽 하단 — 오른쪽 상단"내부 표현.

공백은 무시되므로[(x),(y)]다음과 같습니다[ ( x ), ( y ) ].

F.4.2. 정밀도

값은 내부적으로 64비트 부동 소수점으로 저장됩니다. 숫자. 이는 약 16개 이상의 숫자를 의미합니다. 유효 숫자는 잘립니다.

F.4.3. 사용법

메이저 토토 사이트모듈에는 GiST가 포함되어 있습니다. 에 대한 인덱스 연산자 클래스메이저 토토 사이트값. 는 GiST opclass에서 지원하는 연산자는 다음과 같습니다.

  • a = b 다음과 같음

    메이저 토토 사이트 a와 b는 동일합니다.

  • a && b 중복

    메이저 토토 사이트 a와 b가 겹칩니다.

  • a @ b 포함

    메이저 토토 사이트 a는 메이저 토토 사이트 b를 포함합니다.

  • a <@ b 포함됨

    메이저 토토 사이트 a는 메이저 토토 사이트 b에 포함되어 있습니다.

(PostgreSQL 8.2 이전에는 포함 연산자 @ 및 <@는 각각 @, ~라고 불렀습니다. 이 이름들은 아직도 사용할 수 있지만 더 이상 사용되지 않으며 결국 폐기될 예정입니다. 이전 이름은 규칙과 반대입니다. 이전에는 핵심 기하학적 데이터 유형이 뒤따랐습니다!)

표준 B-트리 연산자도 제공됩니다. 예

[a, b] < [c, d] 미만
[a, b]  [c, d] 보다 큼

이 연산자는 실제적인 경우에는 별로 의미가 없습니다. 목적은 있지만 정렬. 이들 연산자는 먼저 (a)를 (c)와 비교합니다. 그리고 이것이 같다면 (b)와 (d)를 비교하세요. 그 결과 대부분의 경우 합리적으로 좋은 정렬입니다. 이는 다음과 같은 경우에 유용합니다. 이 유형에 ORDER BY를 사용하고 싶습니다.

다음 기능을 사용할 수 있습니다:

표 F-2. 메이저 토토 사이트 함수

메이저 토토 사이트(float8)가 반환됩니다. 메이저 토토 사이트 두 좌표를 모두 사용하여 1차원 메이저 토토 사이트를 만듭니다. 마찬가지다.메이저 토토 사이트(1) == '(1)'
메이저 토토 사이트(float8, float8)가 반환됩니다. 메이저 토토 사이트 1차원 메이저 토토 사이트를 만듭니다.메이저 토토 사이트(1,2) == '(1),(2)'
메이저 토토 사이트(float8[]) 반환 메이저 토토 사이트 좌표를 사용하여 부피가 0인 메이저 토토 사이트를 만듭니다. 배열에 의해 정의됩니다.메이저 토토 사이트(ARRAY[1,2]) == '(1,2)'
메이저 토토 사이트(float8[], float8[]) 메이저 토토 사이트를 반환합니다 오른쪽 위, 왼쪽 아래로 메이저 토토 사이트를 만듭니다. 두 배열에 의해 정의된 좌표입니다. 길이가 같다.메이저 토토 사이트('1,2'::float[], '3,4'::float[]) == '(1,2),(3,4)'
메이저 토토 사이트(메이저 토토 사이트, float8)가 반환됩니다. 메이저 토토 사이트 차원을 추가하여 새 메이저 토토 사이트를 만듭니다. 두 부분 모두에 대해 동일한 값을 갖는 기존 메이저 토토 사이트 새로운 좌표. 메이저 토토 사이트를 만들 때 유용합니다. 계산된 값에서 하나씩.메이저 토토 사이트('(1)',2) == '(1,2),(1,2)'
메이저 토토 사이트(메이저 토토 사이트, float8, float8) 메이저 토토 사이트를 반환합니다 차원을 추가하여 새 메이저 토토 사이트를 만듭니다. 기존 메이저 토토 사이트. 이것은 메이저 토토 사이트 조각을 만드는 데 유용합니다. 계산된 값에서 하나씩.메이저 토토 사이트('(1,2)',3,4) == '(1,3),(2,4)'
cube_dim(메이저 토토 사이트)이 반환됩니다. 정수 메이저 토토 사이트의 차원 수를 반환합니다.
cube_ll_coord(메이저 토토 사이트, 정수) 두 배를 반환합니다 낮은 위치에 대한 n번째 좌표 값을 반환합니다. 메이저 토토 사이트의 왼쪽 모서리
cube_ur_coord(메이저 토토 사이트, 정수) 두 배를 반환합니다 상위의 n번째 좌표값을 반환합니다. 메이저 토토 사이트의 오른쪽 모서리
cube_is_point(메이저 토토 사이트)가 반환됩니다. 부울 메이저 토토 사이트가 점, 즉 두 점인 경우 참을 반환합니다. 모서리 정의는 동일합니다.
cube_distance(메이저 토토 사이트, 메이저 토토 사이트) 두 배를 반환합니다 두 메이저 토토 사이트 사이의 거리를 반환합니다. 둘 다라면 메이저 토토 사이트는 점입니다. 이것이 정상적인 거리입니다. 기능.
메이저 토토 사이트_하위 집합(메이저 토토 사이트, 정수[]) 메이저 토토 사이트를 반환합니다 다음을 사용하여 기존 메이저 토토 사이트에서 새 메이저 토토 사이트를 만듭니다. 배열의 차원 인덱스 목록입니다. 다음에 사용할 수 있습니다. 단일의 LL 및 UR 좌표를 모두 찾습니다. 측정기준(예:메이저 토토 사이트_하위 집합(메이저 토토 사이트('(1,3,5),(6,7,8)'), ARRAY[2]) = '(3),(7)'. 아니면 떨어뜨리는 데 사용할 수도 있습니다. 크기를 조정하거나 원하는 대로 순서를 변경합니다. 예:메이저 토토 사이트_하위 집합(메이저 토토 사이트('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1]) = '(5, 3, 1, 1),(8, 7, 6, 6)'.
cube_union(메이저 토토 사이트, 메이저 토토 사이트)가 반환됩니다. 메이저 토토 사이트 두 메이저 토토 사이트의 결합을 생성
cube_inter(메이저 토토 사이트, 메이저 토토 사이트)가 반환됩니다. 메이저 토토 사이트 두 메이저 토토 사이트의 교차점을 생성
cube_enlarge(메이저 토토 사이트 c, 더블 r, int n) 메이저 토토 사이트를 반환합니다. 지정된 반경만큼 메이저 토토 사이트 크기를 늘립니다. 적어도 n 차원에서. 반경이 음수이면 대신 메이저 토토 사이트가 축소됩니다. 이는 생성하는 데 유용합니다. 근처 검색을 위한 지점 주변의 경계 상자 포인트. 정의된 모든 치수는 다음에 의해 변경됩니다. 반경 r. LL 좌표는 r 및 UR에 의해 감소됩니다. 좌표는 r만큼 증가합니다. LL 좌표가 다음과 같은 경우 해당 UR보다 크게 증가했습니다. 좌표(이것은 r < 0인 경우에만 발생할 수 있음)보다 두 좌표 모두 평균으로 설정됩니다. n이 정의된 차원의 수보다 크고 메이저 토토 사이트가 증가하는 경우(r = 0) 0이 다음과 같이 사용됩니다. 추가 좌표의 기준입니다.

F.4.4. 기본값

나는 이 조합을 믿습니다:

select Cube_union('(0,5,2),(2,3,1)', '0');
메이저 토토 사이트_유니온
------
(0, 0, 0),(2, 5, 2)
(1행)

상식과 모순되지 않으며, 교차로

select Cube_inter('(0,-1),(1,1)', '(-2),(2)');
메이저 토토 사이트_인터
-------------
(0, 0),(1, 0)
(1행)

다른 차원의 메이저 토토 사이트에 대한 모든 이진 연산에서 나는 저차원을 데카르트 투영으로 가정하고, 나. 즉, 생략된 좌표 대신에 0이 있습니다. 문자열 표현. 위의 예는 동일합니다. 에:

cube_union('(0,5,2),(2,3,1)','(0,0,0),(0,0,0)');
Cube_inter('(0,-1),(1,1)','(-2,0),(2,0)');

다음 포함 조건자는 포인트 구문을 사용합니다. 실제로 두 번째 인수는 내부적으로 다음과 같이 표현됩니다. 상자. 이 구문을 사용하면 별도의 정의가 필요하지 않습니다. (box,point) 술어에 대한 포인트 유형 및 함수.

select Cube_contains('(0,0),(1,1)', '0.5,0.5');
메이저 토토 사이트_포함
--------------
티
(1행)

F.4.5. 참고

사용 예는 회귀 테스트를 참조하세요.sql/cube.sql.

사람들이 일을 깨뜨리는 것을 더 어렵게 만들기 위해 다음이 있습니다. 메이저 토토 사이트의 차원 수는 100개로 제한됩니다. 이 설정 에서cubedata.h필요한 것이 있으면 더 크다.

F.4.6. 크레딧

원저자: Gene Selkov, Jr., Argonne National 수학 및 컴퓨터 공학부 연구실.

저는 주로 Joe Hellerstein 교수에게 감사드립니다 (http://db.cs.berkeley.edu/~jmh/)을 설명하기 위해 GiST의 요지 (http://gist.cs.berkeley.edu/) 그리고 그의 전 학생 앤디 동(http://best.me.berkeley.edu/~adong/), 그를 위해 Illustra를 위해 작성된 예http://garcia.me.berkeley.edu/~adong/rtree. 나는 또한 현재와 과거의 모든 Postgres 개발자에게도 감사드립니다. 나만의 세계를 창조하고 방해받지 않고 살아갈 수 있도록 그것. 그리고 Argonne Lab에 감사의 말씀을 전하고 싶습니다. 그리고 수년 동안 충실한 미국 에너지부에 내 데이터베이스 연구를 지원합니다.

이 패키지에 대한 사소한 업데이트는 Bruno Wolff III에 의해 이루어졌습니다.에 2002년 8월/9월. 여기에는 정밀도 변경이 포함됩니다. 단정밀도에서 배정밀도로 변경하고 새로운 기능을 추가합니다. 기능.

Joshua Reich가 추가 업데이트를 했습니다.7월 2006. 여기에는 다음이 포함됩니다.메이저 토토 사이트(float8[], float8[])그리고 V1 호출을 사용하기 위한 코드 정리 더 이상 사용되지 않는 V0 프로토콜 대신 프로토콜을 사용합니다.