PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 64. Chỉ số Brin | Tiếp theo |
TheBrinGiao diện có mức độ trừu tượng cao, yêu cầu người thực hiện phương thức truy cập chỉ để thực hiện ngữ nghĩa của kiểu dữ liệu được truy cập. TheBrinBản thân lớp chăm sóc đồng thời, ghi nhật ký và tìm kiếm cấu trúc chỉ mục.
Tất cả những gì cần thiết để có đượcBrinPhương thức truy cập làm việc là thực hiện một số phương thức do người dùng xác định, xác định kèo bóng đá euro vi của các giá trị tóm tắt được lưu trữ trong chỉ mục và cách chúng tương tác với các khóa quét. Tóm lại,BrinKết hợp độ mở rộng với tính tổng quát, tái sử dụng mã và giao diện sạch.
Có bốn phương thức mà một lớp toán tử choBrinPhải cung cấp:
brinopcinfo *opcinfo (oid type_oid)
Trả về thông tin nội bộ về dữ liệu tóm tắt của các cột được lập chỉ mục. Giá trị trả về phải trỏ đến palloc'dBrinopcinfo, có định nghĩa này:
typedef struct brinopcinfo
Brinopcinfo.oi_opaqueCó thể được sử dụng bởi các thói quen của lớp toán tử để truyền thông tin giữa các quy trình hỗ trợ trong quá trình quét chỉ mục.
9011_9078
Trả về xem phím đã phù hợp với các giá trị được lập chỉ mục đã cho cho một phạm vi. Số thuộc tính để sử dụng được truyền như một phần của khóa quét.
9282_9361
Cho một bộ chỉ số và giá trị được lập chỉ mục, sửa đổi thuộc tính được chỉ định của bộ dữ liệu để nó đại diện cho giá trị mới. Nếu bất kỳ sửa đổi nào được thực hiện thành tuple,TRUEđược trả về.
Hợp nhất hai tổng chỉ mục. Cho hai bộ dữ liệu chỉ mục, sửa đổi thuộc tính được chỉ định của đầu tiên trong số chúng để nó đại diện cho cả hai bộ dữ liệu.
Phân phối cốt lõi bao gồm hỗ trợ cho hai loại lớp vận kèo bóng đá euro: MinMax và bao gồm. Các định nghĩa của lớp toán tử sử dụng chúng được vận chuyển cho các loại dữ liệu trong core khi thích hợp.
Các lớp vận kèo bóng đá euro thực hiện các ngữ nghĩa hoàn toàn khác nhau cũng có thể, với điều kiện triển khai bốn quy trình hỗ trợ chính được mô tả ở trên được viết. Lưu ý rằng khả năng tương thích ngược trên các bản phát kèo bóng đá euro chính không được đảm bảo: ví dụ, các quy trình hỗ trợ bổ sung có thể được yêu cầu trong các bản phát kèo bóng đá euro sau.
Để viết một lớp toán tử cho một loại dữ liệu thực hiện một tập hợp hoàn toàn được đặt hàng, có thể sử dụng các quy trình hỗ trợ MinMax cùng với các toán tử tương ứng, như trongBảng 64-2. Tất cả các thành viên của lớp vận kèo bóng đá euro (thủ tục và toán tử) là bắt buộc.
Bảng 64-2. Quy trình và số hỗ trợ cho các lớp toán tử minmax
Thành viên lớp vận kèo bóng đá euro | Đối tượng |
---|---|
Quy trình hỗ trợ 1 | Hàm nội bộbrin_minmax_opcinfo () |
Quy trình hỗ trợ 2 | Hàm nội bộbrin_minmax_add_value () |
Quy trình hỗ trợ 3 | Hàm nội bộbrin_minmax_consistent () |
Quy trình hỗ trợ 4 | Hàm nội bộbrin_minmax_union () |
Chiến lược vận kèo bóng đá euro 1 | Nhà điều kèo bóng đá euro ít hơn |
Chiến lược vận kèo bóng đá euro 2 | Nhà điều kèo bóng đá euro ít hơn hoặc không bình đẳng để |
Chiến lược vận kèo bóng đá euro 3 | toán tử bằng |
Chiến lược vận kèo bóng đá euro 4 | Nhà điều kèo bóng đá euro Greater-OF-Equal-to |
Chiến lược vận kèo bóng đá euro 5 | Nhà điều kèo bóng đá euro Greater-so với |
Để viết một lớp toán tử cho một loại dữ liệu phức tạp có các giá trị bao gồm trong một loại khác, có thể sử dụng các quy trình hỗ trợ bao gồm cùng với các toán tử tương ứng, như trongBảng 64-3. Nó chỉ yêu cầu một chức năng bổ sung, có thể được viết bằng bất kỳ ngôn ngữ nào.
Bảng 64-3. Quy trình và số hỗ trợ cho các lớp toán tử bao gồm
Thành viên lớp vận kèo bóng đá euro | Đối tượng | phụ thuộc |
---|---|---|
Quy trình hỗ trợ 1 | Hàm nội bộbrin_inclusion_opcinfo () |
|
Quy trình hỗ trợ 2 | Hàm nội bộbrin_inclusion_add_value () |
|
Quy trình hỗ trợ 3 | Hàm nội bộbrin_inclusion_consistent () |
|
Quy trình hỗ trợ 4 | Hàm nội bộbrin_inclusion_union () |
|
Quy trình hỗ trợ 11 | hàm để hợp nhất hai phần tử | |
Quy trình hỗ trợ 12 | Hàm tùy chọn để kiểm tra xem hai yếu tố có thể hợp nhất hay không | |
Quy trình hỗ trợ 13 | Hàm tùy chọn để kiểm tra xem một phần tử được chứa trong một phần tử khác | |
Quy trình hỗ trợ 14 | Hàm tùy chọn để kiểm tra xem một phần tử có trống không | |
Chiến lược vận kèo bóng đá euro 1 | Nhà điều kèo bóng đá euro bên trái | Chiến lược vận kèo bóng đá euro 4 |
Chiến lược vận kèo bóng đá euro 2 | 14387_14429 | Chiến lược vận kèo bóng đá euro 5 |
Chiến lược vận kèo bóng đá euro 3 | Nhà điều kèo bóng đá euro chồng chéo | |
Chiến lược vận kèo bóng đá euro 4 | Nhà điều kèo bóng đá euro không-không mở rộng để-bên trái | Chiến lược vận kèo bóng đá euro 1 |
Chiến lược vận kèo bóng đá euro 5 | Nhà điều kèo bóng đá euro phải-của | Chiến lược vận kèo bóng đá euro 2 |
Chiến lược vận kèo bóng đá euro 6, 18 | Nhà điều kèo bóng đá euro cùng hoặc không bình đẳng với | Chiến lược vận kèo bóng đá euro 7 |
Chiến lược vận kèo bóng đá euro 7, 13, 16, 24, 25 | Toán tử chứa hoặc không bình đẳng để | |
Chiến lược vận kèo bóng đá euro 8, 14, 26, 27 | Nhà điều kèo bóng đá euro có chứa bằng hoặc không bình đẳng để | Chiến lược vận kèo bóng đá euro 3 |
Chiến lược vận kèo bóng đá euro 9 | Nhà điều kèo bóng đá euro không-extend-above | Chiến lược vận kèo bóng đá euro 11 |
Chiến lược vận kèo bóng đá euro 10 | Nhà điều kèo bóng đá euro IS-Below | Chiến lược vận kèo bóng đá euro 12 |
Chiến lược vận kèo bóng đá euro 11 | toán tử IS-above | Chiến lược vận kèo bóng đá euro 9 |
Chiến lược vận kèo bóng đá euro 12 | Nhà điều kèo bóng đá euro không-extend-below | Chiến lược vận kèo bóng đá euro 10 |
Chiến lược vận kèo bóng đá euro 20 | Nhà điều kèo bóng đá euro ít hơn | Chiến lược vận kèo bóng đá euro 5 |
Chiến lược vận kèo bóng đá euro 21 | Nhà điều kèo bóng đá euro ít hơn hoặc không bình đẳng để | Chiến lược vận kèo bóng đá euro 5 |
Chiến lược vận kèo bóng đá euro 22 | Nhà điều kèo bóng đá euro Greater-so với | Chiến lược vận kèo bóng đá euro 1 |
Chiến lược vận kèo bóng đá euro 23 | Nhà điều kèo bóng đá euro Greater-So-Equal-to | Chiến lược vận kèo bóng đá euro 1 |
Quy trình hỗ trợ Số 1-10 được dành riêng cho các chức năng nội bộ của Brin, do đó các chức năng cấp SQL bắt đầu với số 11. Hỗ trợ chức năng số 11 là chức năng chính cần thiết để xây dựng chỉ mục. Nó sẽ chấp nhận hai đối số với cùng loại dữ liệu với lớp toán tử và trả về sự kết hợp của chúng.lưu trữTham số. Giá trị trả về của hàm liên minh sẽ khớp vớilưu trữKiểu dữ liệu.
Quy trình hỗ trợ Số 12 và 14 được cung cấp để hỗ trợ sự bất thường của các loại dữ liệu tích hợp. Quy trình số 12 được sử dụng để hỗ trợ các địa chỉ mạng từ các gia đình khác nhau không được sáp nhập.
Cả hai lớp toán tử minmax và bao gồm đều hỗ trợ các toán tử loại dữ liệu chéo, mặc dù với những phụ thuộc này trở nên phức tạp hơn. Lớp toán tử MinMax yêu cầu một bộ toán tử đầy đủ được xác định với cả hai đối số có cùng loại dữ liệu.Bảng 64-3hoặc cùng một chiến lược vận kèo bóng đá euro như chính họ. Họ yêu cầu toán tử phụ thuộc phải được xác định vớilưu trữKiểu dữ liệu là đối số phía bên trái và kiểu dữ liệu được hỗ trợ khác là đối số bên phải của toán tử được hỗ trợ. Nhìn thấyfloat4_minmax_opslàm ví dụ về minmax vàbox_inclusion_opsnhư một ví dụ về sự bao gồm.