Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển: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

F.18.Intarray

TheintarrayMô-đun cung cấp một số hàm và toán tử hữu ích để thao tác các mảng số kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay đượ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 kèo chấp bóng đá hôm nay một chiều. Mặc dù chúng sẽ chấp nhận các kèo chấp bóng đá hôm nay đầu vào có nhiều kích thước hơn, dữ liệu được xử lý như thể đó là một kèo chấp bóng đá hôm nay tuyến tính theo thứ tự lưu trữ.

Mô -đun này được coi làHồiTrustedxông, nghĩa là nó có thể được cài đặt bởi những người không phải là người siêu giám sát cóTạoĐặc quyền trên cơ sở dữ liệu hiện tại.

F.18.1.IntarrayChức năng và toán tử

Các chức năng được cung cấp bởiintarrayMô -đun được hiển thị trongBảng F.9, toán tử trongBảng F.10.

Bảng F.9.intarrayChức năng

chức năng

Mô tả

Ví dụ

Icount(Số kèo chấp bóng đá hôm nay []) →Số kèo chấp bóng đá hôm nay

Trả về số lượng phần tử trong kèo chấp bóng đá hôm nay.

ICOUNT ('1,2,3' :: Integer [])3

Sắp xếp(Số kèo chấp bóng đá hôm nay [],dir Text) →số kèo chấp bóng đá hôm nay []

Sắp xếp kèo chấp bóng đá hôm nay theo thứ tự tăng dần hoặc giảm dần.dirphải làASChoặcDesc.

Sắp xếp ('1,3,2' :: Integer [], 'desc')3,2,1

Sắp xếp(Số kèo chấp bóng đá hôm nay []) →Số kèo chấp bóng đá hôm nay []

sort_asc(số kèo chấp bóng đá hôm nay []) →Số kèo chấp bóng đá hôm nay []

Sắp xếp theo thứ tự tăng dần.

Sắp xếp (kèo chấp bóng đá hôm nay [11,77,44])11,44,77

sort_desc(Số kèo chấp bóng đá hôm nay []) →Số kèo chấp bóng đá hôm nay []

Sắp xếp theo thứ tự giảm dần.

sort_desc (kèo chấp bóng đá hôm nay [11,77,44])77,44,11

uniq(số kèo chấp bóng đá hôm nay []) →Số kèo chấp bóng đá hôm nay []

loại bỏ các bản sao liền kề. Thường được sử dụng vớiSắp xếpĐể loại bỏ tất cả các bản sao.

uniq ('1,2,2,3,1,1' :: Integer [])1,2,3,1

uniq (sắp xếp ('1,2,3,2,1' :: Integer []))1,2,3

idx(Số kèo chấp bóng đá hôm nay [],Mục Số kèo chấp bóng đá hôm nay) →Số kèo chấp bóng đá hôm nay

Trả về chỉ mục của phần tử kèo chấp bóng đá hôm nay đầu tiên khớpMụchoặc 0 nếu không phù hợp.

IDX (kèo chấp bóng đá hôm nay [11,22,33,22,11], 22)2

Subarray(Số kèo chấp bóng đá hôm nay [],Bắt đầu Số kèo chấp bóng đá hôm nay,len Số kèo chấp bóng đá hôm nay) →Số kèo chấp bóng đá hôm nay []

trích xuất phần của kèo chấp bóng đá hôm nay bắt đầu tại vị tríBắt đầu, vớilenphần tử.

Subarray ('1,2,3,2,1' :: Integer [], 2, 3)2,3,2

Subarray(số kèo chấp bóng đá hôm nay [],Bắt đầu Số kèo chấp bóng đá hôm nay) →Số kèo chấp bóng đá hôm nay []

trích xuất phần của kèo chấp bóng đá hôm nay bắt đầu tại vị tríBắt đầu.

Subarray ('1,2,3,2,1' :: Integer [], 2)2,3,2,1

intset(Số kèo chấp bóng đá hôm nay) →Số kèo chấp bóng đá hôm nay []

Tạo một kèo chấp bóng đá hôm nay một phần tử.

Intset (42)42


Bảng F.10.IntarrayNgười vận hành

Nhà điều hành

Mô tả

Số kèo chấp bóng đá hôm nay [] && Số kèo chấp bóng đá hôm nay []Boolean

Do kèo chấp bóng đá hôm nay trùng lặp (có ít nhất một phần tử chung)?

Số kèo chấp bóng đá hôm nay [] @ Số kèo chấp bóng đá hôm nay []Boolean

kèo chấp bóng đá hôm nay trái có chứa kèo chấp bóng đá hôm nay phải không?

Số kèo chấp bóng đá hôm nay [] <@ số kèo chấp bóng đá hôm nay []Boolean

kèo chấp bóng đá hôm nay còn lại chứa trong kèo chấp bóng đá hôm nay phải?

# Số kèo chấp bóng đá hôm nay []Số kèo chấp bóng đá hôm nay

Trả về số lượng phần tử trong kèo chấp bóng đá hôm nay.

Số kèo chấp bóng đá hôm nay [] # Số kèo chấp bóng đá hôm naySố kèo chấp bóng đá hôm nay

Trả về chỉ mục của phần tử kèo chấp bóng đá hôm nay đầu tiên khớp đúng đối số hoặc 0 nếu không phù hợp. (Giống nhưIDXchức năng.)

Số kèo chấp bóng đá hôm nay [] + Số kèo chấp bóng đá hôm naySố kèo chấp bóng đá hôm nay []

Thêm phần tử vào cuối kèo chấp bóng đá hôm nay.

Số kèo chấp bóng đá hôm nay [] + Số kèo chấp bóng đá hôm nay []Số kèo chấp bóng đá hôm nay []

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

Số kèo chấp bóng đá hôm nay [] - Số kèo chấp bóng đá hôm naySố kèo chấp bóng đá hôm nay []

Xóa các mục khớp phù hợp với đối số đúng khỏi kèo chấp bóng đá hôm nay.

Số kèo chấp bóng đá hôm nay [] - số kèo chấp bóng đá hôm nay []Số kèo chấp bóng đá hôm nay []

Xóa các phần tử của kèo chấp bóng đá hôm nay phải khỏi kèo chấp bóng đá hôm nay bên trái.

Số kèo chấp bóng đá hôm nay [] | Số kèo chấp bóng đá hôm naySố kèo chấp bóng đá hôm nay []

Tính toán sự kết hợp của các đối số.

Số kèo chấp bóng đá hôm nay [] | Số kèo chấp bóng đá hôm nay []Số kèo chấp bóng đá hôm nay []

Tính toán sự kết hợp của các đối số.

Số kèo chấp bóng đá hôm nay [] & Số kèo chấp bóng đá hôm nay []Số kèo chấp bóng đá hôm nay []

Tính toán giao điểm của các đối số.

Số kèo chấp bóng đá hôm nay [] @@ query_intBoolean

kèo chấp bóng đá hôm nay có thỏa mãn truy vấn không? (xem bên dưới)

query_int ~ ~ Số kèo chấp bóng đá hôm nay []Boolean

kèo chấp bóng đá hôm nay có thỏa mãn truy vấn không? (Cổ lưu 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.

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

The@@~ ~Toán tử kiểm tra xem một kèo chấp bóng đá hôm nay 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ố kèo chấp bóng đá hôm nay được kiểm tra so với các phần tử của mảng, 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.1 & (2 | 3)khớp với các kèo chấp bóng đá hôm nay có chứa 1 và cũng chứa 2 hoặc 3.

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

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

Hai lớp toán tử chỉ số GIST được tham số được cung cấp:gist__int_ops(được sử dụng theo mặc định) phù hợp cho các 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ị kèo chấp bóng đá hôm nay 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.

gist__int_opsxấp xỉ một số kèo chấp bóng đá hôm nay được đặt dưới dạng một mảng các phạm vi số kèo chấp bóng đá hôm nay. Tham số số kèo chấp bóng đá hôm nay tùy chọn của nóNumRangesXác định số lượng phạm vi tối đa trong một khóa chỉ mục. Giá trị mặc định củaNumRangeslà 100. Các giá trị hợp lệ nằm trong khoảng từ 1 đến 253. Sử dụng các kèo chấp bóng đá hôm nay lớn hơn làm khóa chỉ số GIST dẫn đến một tìm kiếm chính xác hơn (quét một phần nhỏ hơn của chỉ số và ít trang đống hơn), với chi phí của một chỉ số lớn hơn.

gist__intbig_opsxấp xỉ một số kèo chấp bóng đá hôm nay được đặt làm chữ ký bitmap. Tham số số kèo chấp bóng đá hôm nay tùy chọn của nóSiglenXác định độ dài chữ ký trong byte. Độ dài chữ ký mặc định là 16 byte.

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ử.

26946_27088

F.18.3.Ví dụ

- Một tin nhắn có thể nằm trong một hoặc nhiềuPhầnHàngTạo thông báo bảng (phím chính giữa int, phần int [], ...);

F.18.4.Điểm chuẩn

Thư mục nguồn28283_28307chứ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/Intarray/Bench

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.

F.18.5.Tác giả

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 các chức năng và hoạt động mới.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.