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 đá c1 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 / * Số lượng cột được lưu trữ trong một cột chỉ mục của OPCLASS *// uint16 oi_nstored; / * Con trỏ mờ cho sử dụng riêng tư của opclass *// khoảng trống *oi_opaque; / * Nhập các mục lưu trữ bộ nhớ cache của các cột được lưu trữ *// TypecacheEntry *OI_TypCache [FENTIBLE_ARRAY_MEMEMER]; Brinopcinfo;
Brinopcinfo
.oi_opaque
Có thể được sử dụng bởi các thói quen của lớp vận hành để truyền thông tin giữa các chức kèo bóng đá c1 hỗ trợ trong quá trình quét chỉ mục.
9068_9135
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.
9391_9470
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 tuple để 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. Bộ thứ hai không được sửa đổi.
một lớp toán tử choBrincó thể chỉ định phương thức sau:
Tùy chọn void (local_relopts *relopts)
Xác định một tập hợp các tham số có thể nhìn thấy người dùng có thể điều khiển kèo bóng đá c1 vi của lớp toán tử.
TheTùy chọn
Hàm được chuyển một con trỏ cho Alocal_relopts
struct, cần được lấp đầy với một tập hợp các tùy chọn cụ thể của lớp vận hành. Các tùy chọn có thể được truy cập từ các chức kèo bóng đá c1 hỗ trợ khác bằng cách sử dụngpg_has_opclass_options ()
vàPG_GET_OPCLASS_OPTES ()
Macros.
Vì cả hai trích xuất chính của các giá trị được lập chỉ mục và biểu diễn của khóa trongBrinlà linh hoạt, chúng có thể phụ thuộc vào các tham số do người dùng chỉ định.
Phân phối cốt lõi bao gồm hỗ trợ cho hai loại lớp toán tử: 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 toán tử bổ sung có thể được người dùng xác định cho các loại dữ liệu khác bằng các định nghĩa tương đương mà không phải viết bất kỳ mã nguồn nào; Các mục Danh mục phù hợp đang được khai báo là đủ. Lưu ý rằng các giả định về ngữ nghĩa của các chiến lược vận kèo bóng đá c1 được nhúng trong mã nguồn của các hàm hỗ trợ.
Các lớp toán tử 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 của bốn chức kèo bóng đá c1 hỗ trợ chính được mô tả ở trên được viết. Lưu ý rằng khả kèo bóng đá c1 tương thích ngược trên các bản phát hành chính không được đảm bảo: ví dụ, các chức kèo bóng đá c1 hỗ trợ bổ sung có thể được yêu cầu trong các bản phát hành sau.
12001_12187Bảng 67.2. Tất cả các thành viên của lớp toán tử (chức kèo bóng đá c1 và toán tử) là bắt buộc.
Bảng 67.2. Chức kèo bóng đá c1 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 đá c1 | Đối tượng |
---|---|
Hỗ trợ chức kèo bóng đá c1 1 | Hàm nội bộbrin_minmax_opcinfo () |
Hỗ trợ chức kèo bóng đá c1 2 | Hàm nội bộbrin_minmax_add_value () |
Hỗ trợ chức kèo bóng đá c1 3 | Hàm nội bộbrin_minmax_consistent () |
Hỗ trợ chức kèo bóng đá c1 4 | Hàm nội bộbrin_minmax_union () |
Chiến lược vận kèo bóng đá c1 1 | Nhà điều kèo bóng đá c1 ít hơn |
Chiến lược vận kèo bóng đá c1 2 | Nhà điều kèo bóng đá c1 ít hơn hoặc không bình đẳng để |
Chiến lược vận kèo bóng đá c1 3 | Nhà điều kèo bóng đá c1 bằng |
Chiến lược vận kèo bóng đá c1 4 | Nhà điều kèo bóng đá c1 Greater-OF-Equal-to |
Chiến lược vận kèo bóng đá c1 5 | Nhà điều kèo bóng đá c1 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 hàm hỗ trợ bao gồm cùng với các toán tử tương ứng, như thể hiện trongBảng 67.3. Nó chỉ yêu cầu một chức kèo bóng đá c1 bổ sung, có thể được viết bằng bất kỳ ngôn ngữ nào. Nhiều chức kèo bóng đá c1 có thể được xác định cho chức kèo bóng đá c1 bổ sung. Tất cả các nhà khai thác là tùy chọn. Một số toán tử yêu cầu các toán tử khác, như được hiển thị dưới dạng phụ thuộc trên bảng.
Bảng 67.3. Chức kèo bóng đá c1 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 đá c1 | Đối tượng | phụ thuộc |
---|---|---|
Hỗ trợ chức kèo bóng đá c1 1 | Hàm nội bộbrin_inclusion_opcinfo () |
|
Hỗ trợ chức kèo bóng đá c1 2 | Hàm nội bộbrin_inclusion_add_value () |
|
Hỗ trợ chức kèo bóng đá c1 3 | Hàm nội bộbrin_inclusion_consistent () |
|
Hỗ trợ chức kèo bóng đá c1 4 | Hàm nội bộbrin_inclusion_union () |
|
Hỗ trợ chức kèo bóng đá c1 11 | hàm để hợp nhất hai phần tử | |
Hỗ trợ chức kèo bóng đá c1 12 | Hàm tùy chọn để kiểm tra xem hai phần tử có hợp nhất không | |
Hỗ trợ chức kèo bóng đá c1 13 | Hàm tùy chọn để kiểm tra xem một phần tử có được chứa trong một phần tử khác | |
Hỗ trợ chức kèo bóng đá c1 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 đá c1 1 | Nhà điều kèo bóng đá c1 trái của | Chiến lược vận kèo bóng đá c1 4 |
Chiến lược vận kèo bóng đá c1 2 | 17331_17373 | Chiến lược vận kèo bóng đá c1 5 |
Chiến lược vận kèo bóng đá c1 3 | Nhà điều kèo bóng đá c1 chồng chéo | |
Chiến lược vận kèo bóng đá c1 4 | Nhà điều kèo bóng đá c1 không-không mở rộng để-bên trái | Chiến lược vận kèo bóng đá c1 1 |
Chiến lược vận kèo bóng đá c1 5 | Nhà điều kèo bóng đá c1 phải | Chiến lược vận kèo bóng đá c1 2 |
Chiến lược vận kèo bóng đá c1 6, 18 | Nhà điều kèo bóng đá c1 cùng hoặc không bình đẳng với | Chiến lược vận kèo bóng đá c1 7 |
Chiến lược vận kèo bóng đá c1 7, 13, 16, 24, 25 | Toán tử chứa hoặc không bằng nhau để | |
Chiến lược vận kèo bóng đá c1 8, 14, 26, 27 | Nhà điều kèo bóng đá c1 có chứa bằng hoặc không bình đẳng để | Chiến lược vận kèo bóng đá c1 3 |
Chiến lược vận kèo bóng đá c1 9 | Nhà điều kèo bóng đá c1 không-extend-above | Chiến lược vận kèo bóng đá c1 11 |
Chiến lược vận kèo bóng đá c1 10 | Nhà điều kèo bóng đá c1 là-Below | Chiến lược vận kèo bóng đá c1 12 |
Chiến lược vận kèo bóng đá c1 11 | Nhà điều kèo bóng đá c1 is-above | Chiến lược vận kèo bóng đá c1 9 |
Chiến lược vận kèo bóng đá c1 12 | Nhà điều kèo bóng đá c1 không-không mở rộng-Below | Chiến lược vận kèo bóng đá c1 10 |
Chiến lược vận kèo bóng đá c1 20 | Nhà điều kèo bóng đá c1 ít hơn | Chiến lược vận kèo bóng đá c1 5 |
Chiến lược vận kèo bóng đá c1 21 | Nhà điều kèo bóng đá c1 ít hơn hoặc không bình đẳng để | Chiến lược vận kèo bóng đá c1 5 |
Chiến lược vận kèo bóng đá c1 22 | Nhà điều kèo bóng đá c1 Greater-so với | Chiến lược vận kèo bóng đá c1 1 |
Chiến lược vận kèo bóng đá c1 23 | Nhà điều kèo bóng đá c1 Greater-OF-Equal-to | Chiến lược vận kèo bóng đá c1 1 |
Hỗ trợ Số chức kèo bóng đá c1 từ 1 đến 10 được dành riêng cho các hàm bên trong Brin, do đó, các hàm cấp SQL bắt đầu với số 11. Hỗ trợ chức kèo bóng đá c1 số 11 là chức kèo bóng đá c1 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ớp toán tử bao gồm có thể lưu trữ các giá trị liên kết với các loại dữ liệu khác nhau nếu nó được xác định vớilư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.
Hỗ trợ Số chức kèo bóng đá c1 12 và 14 được cung cấp để hỗ trợ các loại dữ liệu tích hợp. Chức kèo bóng đá c1 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 hợp nhất. Hàm số 14 được sử dụng để hỗ trợ các phạm vi trống. Chức kèo bóng đá c1 số 13 là một tùy chọn nhưng được đề xuất, cho phép kiểm tra giá trị mới trước khi nó được chuyển đến hàm liên minh. Vì khung Brin có thể rút ngắn một số hoạt động khi liên minh không thay đổi, sử dụng chức kèo bóng đá c1 này có thể cải thiện hiệu suất chỉ mục.
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. Nó cho phép các loại dữ liệu bổ sung được hỗ trợ bằng cách xác định các bộ toán tử bổ sung. Các chiến lược vận kèo bóng đá c1 lớp vận kèo bóng đá c1 bao gồm phụ thuộc vào chiến lược vận kèo bóng đá c1 khác như trongBảng 67.3hoặc cùng một chiến lược vận kèo bóng đá c1 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_ops
như một ví dụ về minmax vàbox_inclusion_ops
làm ví dụ về sự bao gồm.
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ớp Kinh nghiệm của bạn với tính kèo bóng đá c1 cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.