Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.8. kèo chấp bóng đá hôm nay

Mô -đun này thực hiện kiểu dữ liệukèo chấp bóng đá hôm nayđể đại diện cho các kèo chấp bóng đá hôm nay đa chiều.

F.8.1. Cú pháp

Bảng F-3Hiển thị các biểu diễn bên ngoài hợp lệ chokèo chấp bóng đá hôm nayloại.x, y, v.v. biểu thị số điểm nổi.

Bảng F-3. Biểu diễn bên ngoài kèo chấp bóng đá hôm nay

x Một điểm một chiều (hoặc, khoảng không chiều dài một chiều)
(x) giống như trên
x1,x2,...,xn Một điểm trong không gian n chiều, được biểu thị bên trong dưới dạng kèo chấp bóng đá hôm nay kèo chấp bóng đá hôm nay lượng không
(x1,x2,...,xn) giống như trên
(x), (y) Khoảng thời gian một chiều bắt đầu tạixvà kết thúc tạiyhoặc ngược lại; thứ tự không quan trọng
[(x), (y)] giống như trên
(x1,...,xn), (Y1,...,yn) Một kèo chấp bóng đá hôm nay lập phương N-chiều được biểu thị bằng một cặp góc đối diện đường chéo của nó
[(x1,...,XN), (Y1,...,yn)] giống như trên

Không quan trọng là đặt hàng các góc đối diện của kèo chấp bóng đá hôm nay lập phương được nhập vào.kèo chấp bóng đá hôm nayChức năng hoán đổi giá trị nếu cần để tạo đồng nhất"dưới bên trái - trên bên phải"Biểu diễn nội bộ.

Không gian trắng bị bỏ qua, vì vậy[(x), (Y)]giống như[(x), (y)].

F.8.2. Độ chính xác

Các giá trị được lưu trữ bên trong dưới dạng số điểm nổi 64 bit. Điều này có nghĩa là các số có hơn khoảng 16 chữ số quan trọng sẽ bị cắt.

F.8.3. Cách sử dụng

Thekèo chấp bóng đá hôm nayMô -đun bao gồm lớp toán tử chỉ mục GIST chokèo chấp bóng đá hôm nayGiá trị. Các toán tử được hỗ trợ bởi lớp toán tử GIST được hiển thị trongBảng F-4.

Bảng F-4. Nhà khai thác Cube Gist

Nhà điều hành Mô tả
A = B Các kèo chấp bóng đá hôm nay A và B giống hệt nhau.
A && B Các kèo chấp bóng đá hôm nay A và B chồng chéo.
A @ B kèo chấp bóng đá hôm nay A chứa kèo chấp bóng đá hôm nay lập phương b.
A <@ B kèo chấp bóng đá hôm nay A được chứa trong kèo chấp bóng đá hôm nay b.

(trước PostgreSQL 8.2, toán tử ngăn chặn@<@được gọi tương ứng@~. Những cái tên này vẫn có sẵn, nhưng không được dùng và cuối cùng sẽ được nghỉ hưu.

Các toán tử B-cây tiêu chuẩn cũng được cung cấp, ví dụ

Nhà điều hành Mô tả
[a, b] <[c, d] nhỏ hơn
[A, B] [C, D] lớn hơn
Những nhà khai thác này không có nhiều ý nghĩa cho bất kỳ mục đích thực tế nào mà là sắp xếp. Các toán tử này trước tiên so sánh (a) với (c) và nếu chúng bằng nhau, so sánh (b) với (d).

Bảng F-5Hiển thị các chức năng có sẵn.

Bảng F-5. Chức năng kèo chấp bóng đá hôm nay

kèo chấp bóng đá hôm nay (float8) trả về kèo chấp bóng đá hôm nay Làm cho một kèo chấp bóng đá hôm nay một chiều với cả hai tọa độ giống nhau.kèo chấp bóng đá hôm nay (1) == '(1)'
kèo chấp bóng đá hôm nay (float8, float8) trả về kèo chấp bóng đá hôm nay Làm cho một kèo chấp bóng đá hôm nay một chiều.kèo chấp bóng đá hôm nay (1,2) == '(1), (2)'
kèo chấp bóng đá hôm nay (float8 []) trả về kèo chấp bóng đá hôm nay Tạo kèo chấp bóng đá hôm nay kèo chấp bóng đá hôm nay lượng không bằng cách sử dụng các tọa độ được xác định bởi mảng.kèo chấp bóng đá hôm nay (mảng [1,2]) == '(1,2)'
kèo chấp bóng đá hôm nay (float8 [], float8 []) trả về kèo chấp bóng đá hôm nay Làm cho một kèo chấp bóng đá hôm nay lập phương có tọa độ phía trên bên phải và dưới bên trái theo định nghĩa của hai mảng, phải có cùng độ dài.kèo chấp bóng đá hôm nay ('1,2' :: float [], '3,4' :: float []) == '(1,2), (3,4)'
kèo chấp bóng đá hôm nay (kèo chấp bóng đá hôm nay, float8) trả về kèo chấp bóng đá hôm nay Tạo một kèo chấp bóng đá hôm nay lập phương mới bằng cách thêm một chiều vào một kèo chấp bóng đá hôm nay lập phương có cùng giá trị cho cả hai phần của tọa độ mới. Điều này rất hữu ích để xây dựng các kèo chấp bóng đá hôm nay từng mảnh từ các giá trị được tính toán.kèo chấp bóng đá hôm nay ('(1)', 2) == '(1,2), (1,2)'
kèo chấp bóng đá hôm nay (kèo chấp bóng đá hôm nay, float8, float8) trả về kèo chấp bóng đá hôm nay Làm cho một kèo chấp bóng đá hôm nay lập phương mới bằng cách thêm một chiều vào một kèo chấp bóng đá hôm nay lập phương hiện có. Điều này rất hữu ích để xây dựng các kèo chấp bóng đá hôm nay từng mảnh từ các giá trị được tính toán.kèo chấp bóng đá hôm nay ('(1,2)', 3,4) == '(1,3), (2,4)'
cube_dim (kèo chấp bóng đá hôm nay) trả về int Trả về số lượng kích thước của kèo chấp bóng đá hôm nay
cube_ll_coord (cube, int) trả về gấp đôi Trả về giá trị tọa độ n'th cho góc dưới bên trái của kèo chấp bóng đá hôm nay
cube_ur_coord (cube, int) trả về gấp đôi Trả về giá trị tọa độ n'th cho góc trên bên phải của kèo chấp bóng đá hôm nay
cube_is_point (kèo chấp bóng đá hôm nay) trả về bool Trả về đúng nếu một kèo chấp bóng đá hôm nay lập phương là một điểm, nghĩa là hai góc xác định là như nhau.
cube_distance (kèo chấp bóng đá hôm nay, kèo chấp bóng đá hôm nay) trả về gấp đôi Trả về khoảng cách giữa hai kèo chấp bóng đá hôm nay. Nếu cả hai kèo chấp bóng đá hôm nay là điểm, đây là hàm khoảng cách bình thường.
cube_subset (cube, int []) trả về kèo chấp bóng đá hôm nay Tạo một kèo chấp bóng đá hôm nay mới từ một kèo chấp bóng đá hôm nay lập phương hiện có, sử dụng danh sách các chỉ mục kích thước từ một mảng. Có thể được sử dụng để tìm cả tọa độ LL và UR của một chiều, ví dụ:cube_subset (kèo chấp bóng đá hôm nay ('(1,3,5), (6,7,8)'), mảng [2]) = '(3), (7)'. Hoặc có thể được sử dụng để giảm kích thước hoặc sắp xếp lại chúng như mong muốn, ví dụ:17084_17168.
cube_union (kèo chấp bóng đá hôm nay, kèo chấp bóng đá hôm nay) trả về kèo chấp bóng đá hôm nay Sản xuất sự kết hợp của hai kèo chấp bóng đá hôm nay
cube_inter (kèo chấp bóng đá hôm nay, kèo chấp bóng đá hôm nay) trả về kèo chấp bóng đá hôm nay Sản xuất giao điểm của hai kèo chấp bóng đá hôm nay
cube_enlarge (kèo chấp bóng đá hôm nay c, double r, int n) trả về kèo chấp bóng đá hôm nay Tăng kích thước của một kèo chấp bóng đá hôm nay bằng một bán kính được chỉ định trong ít nhất N Kích thước. Nếu bán kính là âm thì kèo chấp bóng đá hôm nay lập phương bị thu hẹp.

F.8.4. Mặc định

Tôi tin rằng sự kết hợp này:

​​chọn kèo chấp bóng đá hôm nay cube_union ('(0,5,2), (2,3,1)', '0');

Không mâu thuẫn với lẽ thường, giao điểm cũng không

Chọn kèo chấp bóng đá hôm nay cube_inter ('(0, -1), (1,1)', '(-2), (2)');

Trong tất cả các hoạt động nhị phân trên các hình kèo chấp bóng đá hôm nay khác nhau, tôi cho rằng cái chiều thấp hơn là một hình chiếu của Cartesian, i. e., có số 0 thay cho tọa độ bị bỏ qua trong biểu diễn chuỗi.

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

Vị ngữ ngăn chặn sau đây sử dụng cú pháp điểm, trong khi trên thực tế đối số thứ hai được biểu thị bên trong một hộp. Cú pháp này làm cho nó không cần thiết phải xác định một loại điểm và hàm riêng riêng cho (hộp, điểm).

chọn kèo chấp bóng đá hôm nay cube_contains ('(0,0), (1,1)', '0,5,0,5');

F.8.5. Ghi chú

Để biết ví dụ về việc sử dụng, hãy xem bài kiểm tra hồi quySQL/cube.sql.

Để làm cho mọi người khó phá vỡ mọi thứ hơn, có giới hạn 100 về số lượng kích thước của kèo chấp bóng đá hôm nay. Cái này được đặt trongcubedata.hNếu bạn cần một cái gì đó lớn hơn.

F.8.6. Tín dụng

Tác giả gốc: Gene Selkov, Jr., Bộ phận Khoa học Toán và Máy tính, Phòng thí nghiệm Quốc gia Argonne.

Lời cảm ơn của tôi chủ yếu dành cho Giáo sư Joe Hellerstein (http: //db.cs.berkeley.edu/jmh/) để làm sáng tỏ ý chính của ý chính (http: //gist.cs.berkeley.edu/), và cho học sinh cũ của mình, Andy Dong (http: //best.me.berkeley.edu/~adong/), Ví dụ của anh ấy được viết cho Illustra,http: //best.berkeley.edu/~adong/rtree/index.html. Tôi cũng biết ơn tất cả các nhà phát triển Postgres, hiện tại và quá khứ, vì đã cho phép bản thân tạo ra thế giới của riêng tôi và sống không bị xáo trộn trong đó.

Cập nhật nhỏ cho gói này được thực hiện bởi Bruno Wolff IIIVào tháng 8/tháng 9 năm 2002. Chúng bao gồm thay đổi độ chính xác từ độ chính xác đơn sang độ chính xác gấp đôi và thêm một số hàm mới.

Cập nhật bổ sung được thực hiện bởi Joshua ReichVào tháng 7 năm 2006. Chúng bao gồmkèo chấp bóng đá hôm nay (float8 [], float8 [])và làm sạch mã để sử dụng giao thức cuộc gọi V1 thay vì giao thức V0 không dùng nữa.