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 soi kèo bóng đá truoctran phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.18. soi kèo bóng đá truoctran

Thesoi kèo bóng đá truoctranMô-đun cung cấp một số chức năng và toán tử hữu ích để thao tác các soi kèo bóng đá truoctran số nguyên không có null. Ngoài ra còn có hỗ trợ cho các tìm kiếm được lập chỉ mục bằng cách sử dụng một số toán tử.

Tất cả các hoạt động này sẽ gây ra lỗi nếu một soi kèo bóng đá truoctran được cung cấp chứa bất kỳ phần tử null nào.

Nhiều trong số các hoạt động này chỉ hợp lý đối với các soi kèo bóng đá truoctran một chiều. Mặc dù chúng sẽ chấp nhận các soi kèo bóng đá truoctran đầu vào có nhiều kích thước hơn, dữ liệu được xử lý như thể đó là một soi kèo bóng đá truoctran tuyến tính theo thứ tự lưu trữ.

F.18.1.soi kèo bóng đá truoctranChức năng và toán tử

soi kèo bóng đá truoctran chức năng được cung cấp bởisoi kèo bóng đá truoctranMô -đun được hiển thị trongBảng F-10, toán tử trongBảng F-11.

Bảng F-10.soi kèo bóng đá truoctranchức năng

function Return Type Mô tả Ví dụ result
Icount (int []) int Số phần tử trong soi kèo bóng đá truoctran icount ('1,2,3' :: int []) 3
Sắp xếp (int [], văn bản dir) int [] Sắp xếp soi kèo bóng đá truoctran -dirphải làASChoặcDesc Sort ('1,2,3' :: int [], 'desc') 3,2,1
Sắp xếp (int []) int [] Sắp xếp theo thứ tự tăng dần Sắp xếp (soi kèo bóng đá truoctran [11,77,44]) 11,44,77
sort_asc (int []) int [] Sắp xếp theo thứ tự tăng dần
sort_desc (int []) int [] Sắp xếp theo thứ tự giảm dần
uniq (int []) int [] Xóa soi kèo bóng đá truoctran bản sao liền kề uniq (sort ('1,2,3,2,1' :: int [])) 1,2,3
idx (int [], int item) int Chỉ mục của phần tử đầu tiên khớpMục(0 nếu không) IDX (soi kèo bóng đá truoctran [11,22,33,22,11], 22) 2
Subarray (int [], int start, int len) int [] phần của soi kèo bóng đá truoctran bắt đầu ở vị tríBắt đầu, lenElements Subarray ('1,2,3,2,1' :: int [], 2, 3) 2,3,2
Subarray (int [], int start) int [] phần của soi kèo bóng đá truoctran bắt đầu tại vị tríBắt đầu Subarray ('1,2,3,2,1' :: int [], 2) 2,3,2,1
intset (int) int [] Tạo soi kèo bóng đá truoctran một phần tử Intset (42) 42

Bảng F-11.soi kèo bóng đá truoctran13002_13014

Nhà điều hành return Mô tả
int [] && int [] Boolean chồng chéo -TRUENếu soi kèo bóng đá truoctran có ít nhất một phần tử chung
int [] @ int [] Boolean chứa -TRUENếu soi kèo bóng đá truoctran trái chứa soi kèo bóng đá truoctran phải
int [] <@ int [] Boolean chứa -TRUENếu soi kèo bóng đá truoctran trái được chứa trong soi kèo bóng đá truoctran phải
# int [] int Số lượng phần tử trong soi kèo bóng đá truoctran
int [] # int int index (giống nhưidxchức năng)
int [] + int int [] Đẩy phần tử vào soi kèo bóng đá truoctran (thêm nó vào cuối soi kèo bóng đá truoctran)
int [] + int [] int [] Concatenation (soi kèo bóng đá truoctran phải được thêm vào cuối bên trái)
int [] - int int [] Xóa các mục khớp phù hợp với đối số khỏi soi kèo bóng đá truoctran
int [] - int [] int [] Xóa các phần tử của soi kèo bóng đá truoctran phải khỏi trái
int [] | int int [] Liên minh đối số
int [] | int [] int [] Liên minh soi kèo bóng đá truoctran
int [] & int [] int [] Giao lộ của soi kèo bóng đá truoctran
int [] @@ query_int Boolean trueNếu soi kèo bóng đá truoctran thỏa mãn truy vấn (xem bên dưới)
query_int ~ ~ int [] Boolean TRUENếu soi kèo bóng đá truoctran thỏa mãn truy vấn (cong thư của@@)

(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. Lưu ý rằng soi kèo bóng đá truoctran tên cũ được đảo ngược từ Công ước trước đây là soi kèo bóng đá truoctran loại dữ liệu hình học cốt lõi!)

Người vận hành&&, @<@tương đương vớiPostgreSQL16033_16279

The@@~ ~Toán tử kiểm tra xem một soi kèo bóng đá truoctran có thỏa mãnTruy vấn, được biểu thị bằng giá trị của loại dữ liệu chuyên dụngquery_int. MỘTTruy vấnBao gồm các giá trị số nguyên được kiểm tra đối với các phần tử của soi kèo bóng đá truoctran, có thể kết hợp bằng cách sử dụng các toán tử&(và),|(hoặc) và!(không). Điểm số có thể được sử dụng khi cần thiết. Ví dụ: truy vấn1 & (2 | 3)khớp với các soi kèo bóng đá truoctran có chứa 1 và cũng chứa 2 hoặc 3.

F.18.2. Hỗ trợ chỉ mục

soi kèo bóng đá truoctranCung cấp hỗ trợ chỉ mục cho&&, @, <@@@toán tử, cũng như bình đẳng soi kèo bóng đá truoctran thông thường.

hai lớp toán tử chỉ mục GIST được cung cấp:gist__int_ops(được sử dụng theo mặc định) phù hợp cho soi kèo bóng đá truoctran bộ dữ liệu cỡ nhỏ đến trung bình, trong khigist__intbig_opsSử dụng chữ ký lớn hơn và phù hợp hơn để lập chỉ mục các tập dữ liệu lớn (nghĩa là, các cột chứa một số lượng lớn các giá trị soi kèo bóng đá truoctran riêng biệt). Việc triển khai sử dụng cấu trúc dữ liệu rd-cây với nén mất tích hợp.

Ngoài ra còn có lớp toán tử GIN không mặc địnhGin__int_opsHỗ trợ cùng một toán tử.

17856_17998

F.18.3. Ví dụ

- Một tin nhắn có thể nằm trong một hoặc nhiều"Phần"18206_18759

F.18.4. Điểm chuẩn

Thư mục nguồn18915_18939chứa bộ kiểm tra điểm chuẩn, có thể chạy đối với cài đặtPostgreSQLMáy chủ. (Nó cũng yêu cầuDBD :: PGsẽ được cài đặt.) Để chạy:

CD .../PRINT/soi kèo bóng đá truoctran/Bench
Test CreatedB
Kiểm tra PSQL -C "Tạo phần mở rộng soi kèo bóng đá truoctran"
./create_test.pl | Kiểm tra PSQL
./bench.pl

Thebăng ghế.plTập lệnh có nhiều tùy chọn, được hiển thị khi nó được chạy mà không có bất kỳ đối số nào.

19520_19537

Tất cả công việc được thực hiện bởi Teodor Sigaev () và Oleg Bartunov (). Nhìn thấyhttp: //www.sai.msu.su/~megera/postgres/gist/Để biết thêm thông tin. Andrey Oktyabrski đã làm rất tốt trong việc thêm soi kèo bóng đá truoctran chức năng và hoạt động mới.