F.9. 입방체

이 모듈은 데이터 유형을 구현합니다사설 토토 사이트다차원 사설 토토 사이트를 나타내는 것.

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

F.9.1. 통사론

테이블 F.2사설 토토 사이트타입.x, y등. 부동 소수점 번호를 나타냅니다.

표 F.2. 사설 토토 사이트 외부 표현

외부 구문 의미
x 1 차원 지점 (또는 제로 길이의 1 차원 간격)
(x) 위와 동일
x1,x2,...,xn 내 차원 공간의 점, 내부적으로 제로 볼륨 사설 토토 사이트로 표현
(x1,x2,...,XN) 위와 동일
(x), (y) 1에서 시작하는 1 차원 간격x및 끝에서y또는 그 반대도; 주문은 중요하지 않습니다
[(x), (y)] 위와 동일
(x1,...,xn), (Y1,...,yn) 대각선 반대쪽 코너 쌍으로 표현 된 N- 차원 사설 토토 사이트
[(x1,...,xn), (Y1,...,yn)] 위와 동일

사설 토토 사이트의 반대쪽 모서리를 입력하는 것은 중요하지 않습니다.사설 토토 사이트함수 균일을 만들기 위해 필요한 경우 값을 자동으로 교체합니다왼쪽 하단 - 오른쪽 상단내부 표현. 모서리가 일치 할 때사설 토토 사이트|is point공간 낭비를 피하기위한 깃발.

입력시 공백이 무시되므로[(x), (y)]|[(x), (y)].

F.9.2. 정도

값은 내부적으로 64 비트 플로팅 포인트 번호로 저장됩니다. 이것은 약 16 개의 중요한 숫자가있는 숫자가 잘릴 것임을 의미합니다.

F.9.3. 용법

테이블 F.3유형에 제공된 특수 연산자 표시사설 토토 사이트.

표 F.3. 사설 토토 사이트 연산자

운영자

설명

사설 토토 사이트 && 사설 토토 사이트부울

사설 토토 사이트가 겹치는가?

사설 토토 사이트 @ 사설 토토 사이트부울

첫 번째 사설 토토 사이트에는 두 번째 사설 토토 사이트가 포함되어 있습니까?

사설 토토 사이트 <@ 사설 토토 사이트부울

첫 번째 사설 토토 사이트가 두 번째 사설 토토 사이트가 포함되어 있습니까?

사설 토토 사이트 - Integerfloat8

추출n-사설 토토 사이트의 좌표 (1에서 카운트).

사설 토토 사이트 ~ Integerfloat8

추출n-TH 사설 토토 사이트 좌표, 다음 방식으로 계산합니다.n= 2 *K- 1은의 하한을 의미합니다.K-th dimension,n= 2 *K상한을 의미K-Thimension. 부정적인n는 해당 양의 좌표의 역 값을 나타냅니다. 이 연산자는 KNN-Gist 지원을 위해 설계되었습니다.

사설 토토 사이트 <-- 사설 토토 사이트float8

두 사설 토토 사이트 사이의 유클리드 거리를 계산합니다.

사설 토토 사이트 <# 사설 토토 사이트float8

두 사설 토토 사이트 사이의 택시 (L-1 메트릭) 거리를 계산합니다.

사설 토토 사이트 <= 사설 토토 사이트float8

두 사설 토토 사이트 사이의 ChebyShev (L-inf metric) 거리를 계산합니다.


위의 연산자 외에도에 표시된 일반적인 비교 연산자가 있습니다.표 9.1유형에 사용할 수 있습니다사설 토토 사이트. 이 연산자는 먼저 첫 번째 좌표를 비교하고, 동일하면 두 번째 좌표 등을 비교합니다. 주로 B-Tree Index Operator Class for을 지원하기 위해 존재합니다.사설 토토 사이트, 예를 들어 A에 고유 한 제약을 원한다면 유용 할 수 있습니다.사설 토토 사이트열. 그렇지 않으면이 주문은 실용적으로 사용되지 않습니다.

the사설 토토 사이트모듈은 또한 Gist Index 연산자 클래스를 제공합니다사설 토토 사이트값. 에이사설 토토 사이트GIST 인덱스를 사용하여를 사용하여 값을 검색 할 수 있습니다.=, &&, @<@운영자여기서Clauses.

또한 A사설 토토 사이트Gist Index는 메트릭 연산자를 사용하여 가장 가까운 이웃을 찾는 데 사용될 수 있습니다<--, <#<=in주문조항. 예를 들어, 3D 포인트 (0.5, 0.5, 0.5)의 가장 가까운 이웃은 다음과 같이 효율적으로 찾을 수 있습니다.

C <- 사설 토토 사이트로 테스트 순서에서 C를 선택하십시오 (배열 [0.5,0.5,0.5]) 제한 1;

the~연산자는 이러한 방식으로 사용하여 선택한 좌표로 정렬 된 처음 몇 가지 값을 효율적으로 검색 할 수 있습니다. 예를 들어, 첫 번째 좌표 (왼쪽 하단)에서 순서대로 첫 몇 개의 사설 토토 사이트를 얻으려면 다음 쿼리를 사용할 수 있습니다.

C ~ 1 한계 5로 테스트 순서에서 C를 선택하십시오.

그리고 오른쪽 상단 코너 하강의 첫 번째 좌표로 2D 사설 토토 사이트를 주문합니다 :

C ~ 3 Desc Limit 5;의 테스트 순서에서 C를 선택하십시오.

테이블 F.4사용 가능한 함수를 보여줍니다.

표 F.4. 사설 토토 사이트 기능

기능

설명

예제

사설 토토 사이트(float8) →사설 토토 사이트

두 좌표로 1 차원 사설 토토 사이트를 만듭니다.

사설 토토 사이트 (1)(1)

사설 토토 사이트(float8, float8) →사설 토토 사이트

1 차원 사설 토토 사이트를 만듭니다.

사설 토토 사이트 (1, 2)(1), (2)

사설 토토 사이트(float8 []) →사설 토토 사이트

배열에 정의 된 좌표를 사용하여 제로 볼륨 사설 토토 사이트를 만듭니다.

사설 토토 사이트 (배열 [1,2,3])(1, 2, 3)

사설 토토 사이트(float8 [], float8 []) →사설 토토 사이트

두 배열에 의해 정의 된대로 오른쪽 상단 및 하단 좌표가있는 사설 토토 사이트를 만듭니다.

사설 토토 사이트 (배열 [1,2], 배열 [3,4])(1, 2), (3, 4)

사설 토토 사이트(사설 토토 사이트, float8) →사설 토토 사이트

새 좌표의 두 엔드 포인트에 대해 동일한 값을 가진 기존 사설 토토 사이트에 치수를 추가하여 새 사설 토토 사이트를 만듭니다. 이것은 계산 된 값에서 사설 토토 사이트를 조각으로 구축하는 데 유용합니다.

사설 토토 사이트 ( '(1,2), (3,4)':: Cube, 5)(1, 2, 5), (3, 4, 5)

사설 토토 사이트(사설 토토 사이트, float8, float8) →사설 토토 사이트

기존 사설 토토 사이트에 치수를 추가하여 새 사설 토토 사이트를 만듭니다. 이것은 계산 된 값에서 사설 토토 사이트를 조각으로 구축하는 데 유용합니다.

사설 토토 사이트 ( '(1,2), (3,4)':: Cube, 5, 6)(1, 2, 5), (3, 4, 6)

Cube_dim(사설 토토 사이트) →Integer

사설 토토 사이트의 치수 수를 반환합니다.

Cube_dim ( '(1,2), (3,4)')2

Cube_ll_Coord(사설 토토 사이트, Integer) →float8

반환n사설 토토 사이트의 왼쪽 하단 모서리에 대한 조정 값.

Cube_ll_Coord ( '(1,2), (3,4)', 2)2

Cube_ur_Coord(사설 토토 사이트, Integer) →float8

반환n사설 토토 사이트의 오른쪽 상단 모서리에 대한 조정 값.

Cube_ur_Coord ( '(1,2), (3,4)', 2)4

Cube_is_point(사설 토토 사이트) →부울

사설 토토 사이트가 포인트라면, 즉 두 정의 코너가 동일하다면 진실을 반환합니다.

Cube_is_point (Cube (1,1))t

Cube_distance(사설 토토 사이트, 사설 토토 사이트) →float8

두 사설 토토 사이트 사이의 거리를 반환합니다. 두 사설 토토 사이트가 포인트 인 경우 이것은 정상 거리 기능입니다.

Cube_distance ( '(1,2)', '(3,4)')2.8284271247461903

Cube_Subset(사설 토토 사이트, Integer []) →사설 토토 사이트

배열의 치수 인덱스 목록을 사용하여 기존 사설 토토 사이트에서 새 사설 토토 사이트를 만듭니다. 단일 치수의 엔드 포인트를 추출하거나 치수를 삭제하거나 원하는대로 재정렬하는 데 사용할 수 있습니다.

Cube_Subset (Cube ( '(1,3,5), (6,7,8)'), Array [2])(3), (7)

Cube_Subset (Cube ( '(1,3,5), (6,7,8)'), 배열 [3,2,1,1])(5, 3, 1, 1), (8, 7, 6, 6)

Cube_union(사설 토토 사이트, 사설 토토 사이트) →사설 토토 사이트

두 개의 사설 토토 사이트의 결합을 생산합니다.

Cube_union ( '(1,2)', '(3,4)')(1, 2), (3, 4)

Cube_inter(사설 토토 사이트, 사설 토토 사이트) →사설 토토 사이트

두 개의 사설 토토 사이트의 교차점을 생성합니다.

Cube_inter ( '(1,2)', '(3,4)')(3, 4), (1, 2)

Cube_enlarge(C 사설 토토 사이트, r 더블, n Integer) →사설 토토 사이트

지정된 반경만큼 사설 토토 사이트의 크기를 증가시킵니다r적어도n치수. 반경이 음수 인 경우 대신 사설 토토 사이트가 줄어 듭니다. 정의 된 모든 치수는 반경에 의해 변경됩니다r. 왼쪽 하위 좌표는에 의해 감소합니다.r그리고 오른쪽 상단 좌표는에 의해 증가합니다.r. 왼쪽 하단 좌표가 해당 상단 좌표보다 더 많이 증가한 경우 (이 경우에만 발생할 수 있습니다r<0) 두 좌표보다 평균으로 설정됩니다. 만약에n정의 된 치수 수보다 크고 사설 토토 사이트가 확대되고 있습니다 (r 0), 그런 다음 추가 치수가 추가됩니다n완전히; 0은 추가 좌표의 초기 값으로 사용됩니다. 이 기능은 근처 지점을 검색하기위한 한 지점 주위에 경계 상자를 만드는 데 유용합니다.

Cube_enlarge ( '(1,2), (3,4)', 0.5, 3)(0.5, 1.5, -0.5), (3.5, 4.5, 0.5)


F.9.4. 기본값

나는이 연합을 믿는다 :

cube_union을 선택하십시오 ( '(0,5,2), (2,3,1)', '0');
Cube_union
--------------------
(0, 0, 0), (2, 5, 2)
(1 행)

상식과 모순되지 않으며 교차로도 마찬가지입니다

Cube_inter ( '(0, -1), (1,1)', '(-2), (2)');
Cube_inter
-------------
(0, 0), (1, 0)
(1 행)

다르게 차원의 사설 토토 사이트의 모든 바이너리 연산에서, 나는 차원이 저 차원이 데카르트 투영이라고 가정합니다. i. 예를 들어, 문자열 표현에서 좌표 대신 제로가 생략됩니다. 위의 예는 다음과 같습니다.

Cube_union ( '(0,5,2), (2,3,1)', '(0,0,0), (0,0,0)');
cube_inter ( '(0, -1), (1,1)', '(-2,0), (2,0)';

다음 격리 술어는 포인트 구문을 사용하는 반면 실제로 두 번째 인수는 내부적으로 상자로 표시됩니다. 이 구문은 (박스, 포인트) Predicates에 대한 별도의 포인트 유형과 함수를 정의 할 필요가 없습니다.

cube_contains ( '(0,0), (1,1)', '0.5,0.5');
cube_contains
--------------
티
(1 행)

F.9.5. 노트

사용의 예는 회귀 테스트를 참조하십시오SQL/Cube.sql.

사람들이 물건을 깨기 어렵게하기 위해 사설 토토 사이트의 크기 수에는 100의 한계가 있습니다. 이것은에서 설정됩니다.cubedata.h더 큰 것이 필요한 경우.

F.9.6. 크레딧

원래 저자 : Gene Selkov, Jr., Argonne National Laboratory의 수학 및 컴퓨터 과학 부서.

주로 Joe Hellerstein 교수에게 감사드립니다 (https : //dsf.berkeley.edu/jmh/) 요점의 요점을 설명하려면 (http : //gist.cs.berkeley.edu/), 그리고 그의 전 학생 Andy Dong에게 그의 모범을 보여주었습니다. 또한 현재와 과거의 모든 Postgres 개발자에게 내 자신의 세계를 만들고 방해받지 않은 살 수있게 해주셔서 감사합니다. 그리고 저는 데이터베이스 연구에 대한 수년간의 충실한 지원을 위해 Argonne Lab과 미국 에너지 부에 대한 감사를 인정하고 싶습니다.

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

추가 업데이트는 Joshua Reich에 의해 만들어졌습니다2006 년 7 월. 포함사설 토토 사이트 (float8 [], float8 [])및 감가 상승 된 V0 프로토콜 대신 V1 Call 프로토콜을 사용하기위한 코드 정리.

수정 제출

문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면