PostgreSQL: soi kèo bóng đá truoctran liệu: | |||
---|---|---|---|
prev | UP | Phụ lục F. kèo bóng đá pháp mô -đun được cung cấp bổ sung | Tiếp theo |
TheintarrayMô-đun cung cấp một số hàm và toán tử hữu ích để thao tác kèo bóng đá pháp mảng số nguyên không có null. Ngoài ra còn có hỗ trợ cho kèo bóng đá pháp 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ả kèo bóng đá pháp hoạt động này sẽ gây ra lỗi nếu một mảng được cung cấp chứa bất kỳ phần tử null nào.
Nhiều trong số kèo bóng đá pháp hoạt động này chỉ hợp lý đối với kèo bóng đá pháp mảng một chiều. Mặc dù chúng sẽ chấp nhận kèo bóng đá pháp mảng đầu vào có nhiều kích thước hơn, dữ liệu được xử lý như thể đó là một mảng tuyến tính theo thứ tự lưu trữ.
kèo bóng đá pháp chức năng được cung cấp bởiIntarrayMô -đun được hiển thị trongBảng F-10, toán tử trongBảng F-11.
Bảng F-10.intarraychức năng
function | Loại trả lại | Mô tả | Ví dụ | result |
---|---|---|---|---|
Icount (int []) |
int | Số phần tử trong kèo bóng đá pháp | icount ('1,2,3' :: int []) | 3 |
Sắp xếp (int [], văn bản dir) |
int [] | Sắp xếp kèo bóng đá pháp -dirphải làASChoặcDesc | Sắp xếp ('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 (kèo bóng đá pháp [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 kèo bóng đá pháp bản sao liền kề | uniq (sắp xếp ('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 có) | IDX (kèo bóng đá pháp [11,22,33,22,11], 22) | 2 |
Subarray (int [], int start, int len) |
int [] | phần của kèo bóng đá pháp bắt đầu ở vị tríBắt đầu, lenphần tử | Subarray ('1,2,3,2,1' :: int [], 2, 3) | 2,3,2 |
Subarray (int [], int start) |
int [] | phần của kèo bóng đá pháp bắt đầu ở vị tríBắt đầu | Subarray ('1,2,3,2,1' :: int [], 2) | 2,3,2,1 |
intset (int) |
int [] | Tạo kèo bóng đá pháp một phần tử | Intset (42) | 42 |
Bảng F-11.intarraytoán tử
Nhà điều hành | return | Mô tả |
---|---|---|
int [] && int [] | Boolean | chồng chéo -TRUENếu kèo bóng đá pháp có ít nhất một phần tử chung |
int [] @ int [] | Boolean | chứa -TRUENếu kèo bóng đá pháp trái chứa kèo bóng đá pháp phải |
int [] <@ int [] | Boolean | chứa -TRUENếu kèo bóng đá pháp trái được chứa trong kèo bóng đá pháp phải |
# int [] | int | Số phần tử trong kèo bóng đá pháp |
int [] # int | int | index (giống nhưidx chức năng) |
int [] + int | int [] | Đẩy phần tử vào kèo bóng đá pháp (thêm nó vào cuối kèo bóng đá pháp) |
int [] + int [] | int [] | Concatenation (kèo bóng đá pháp phải được thêm vào cuối bên trái) |
int [] - int | int [] | Xóa kèo bóng đá pháp mục khớp phù hợp với đối số khỏi mảng |
int [] - int [] | int [] | Xóa kèo bóng đá pháp phần tử của mảng phải khỏi trái |
int [] | int | int [] | Liên minh đối số |
int [] | int [] | int [] | Liên minh kèo bóng đá pháp |
int [] & int [] | int [] | Giao lộ của kèo bóng đá pháp |
int [] @@ query_int | Boolean | TRUENếu kèo bóng đá pháp thỏa mãn truy vấn (xem bên dưới) |
query_int ~ ~ int [] | Boolean | TRUENếu kèo bóng đá pháp thỏa mãn truy vấn (cong thư của@@) |
(trước PostgreSQL 8.2, kèo bóng đá pháp toán tử ngăn chặn@và<@được gọi tương ứng@và~. 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.
người vận hành&&, @và<@tương đương vớiPostgreSQL15783_16029
The@@và~ ~Toán tử kiểm tra xem một kèo bóng đá pháp có thỏa mãnTruy vấn, được biểu thị bằng giá trị của loại dữ kèo bóng đá pháp chuyên dụngquery_int. MỘTTruy vấnbao gồm kèo bóng đá pháp giá trị số nguyên được kiểm tra đối với kèo bóng đá pháp phần tử của mảng, có thể kết hợp bằng cách sử dụng kèo bóng đá pháp toán tử&(và),|(hoặc) và!(không). Điểm số có thể được sử dụng khi cần thiết.1 & (2 | 3)khớp với kèo bóng đá pháp mảng có chứa 1 và cũng chứa 2 hoặc 3.
IntarrayCung cấp hỗ trợ chỉ mục cho&&, @, <@và@@toán tử, cũng như bình đẳng kèo bóng đá pháp 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 kèo bóng đá pháp 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 kèo bóng đá pháp bộ dữ liệu lớn (nghĩa là kèo bóng đá pháp cột chứa một số lượng lớn kèo bóng đá pháp giá trị mảng 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ử.
Sự lựa chọn giữa lập chỉ mục GIST và GIIN phụ thuộc vào kèo bóng đá pháp đặc điểm hiệu suất tương đối của GIST và GIN, được thảo luận ở nơi khác. Theo nguyên tắc thông thường, chỉ mục gin nhanh hơn để tìm kiếm so với chỉ mục GIST, nhưng chậm hơn để xây dựng hoặc cập nhật;
- Một tin nhắn có thể nằm trong một hoặc nhiều"Phần"Tạo thông báo bảng (phím chính giữa int, phần int [], ...);
Thư mục nguồn18840_18864chứa bộ kiểm tra điểm chuẩn. Để chạy:
CD .../băng ghế dự bị
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.
Tất cả công việc được thực hiện bởi Teodor Sigaev (<teodor@sigaev.ru
) và Oleg Bartunov (<leg@sai.msu.su
). 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 kèo bóng đá pháp chức năng và hoạt động mới.