Phiên bản được hỗ trợ:hiện tại(173677_380816 / 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

62.1. Cấu trúc API cơ bản cho các chỉ kèo bóng đá c1

Mỗi phương thức truy cập chỉ kèo bóng đá c1 được mô tả bằng một hàng trongpg_amDanh kèo bóng đá c1 hệ thống. Thepg_amkèo bóng đá c1 nhập Chỉ định tên và AChức năng xử lý8478_8561Tạo phương thức truy cậpPhương thức truy cập thảkèo bóng đá c1 lệnh SQL.

Hàm xử lý phương thức truy cập chỉ kèo bóng đá c1 phải được khai báo để chấp nhận một đối số duy nhất loạiNội bộvà để trả về loại giảindex_am_handler. Đối số là một giá trị giả chỉ đơn giản là phục vụ để ngăn chặn kèo bóng đá c1 hàm xử lý được gọi trực tiếp từ kèo bóng đá c1 lệnh SQL. Kết quả của hàm phải là cấu trúc palloc'd của loạiindexAmRoutine, chứa mọi thứ mà mã cốt lõi cần biết để sử dụng phương thức truy cập chỉ kèo bóng đá c1. TheindexAmRoutinestruct, còn được gọi là phương thức truy cậpAPI Struct, bao gồm các trường chỉ định các thuộc tính cố định của phương thức truy cập, chẳng hạn như liệu nó có thể hỗ trợ các chỉ kèo bóng đá c1 Multicolumn hay không. Quan trọng hơn, nó chứa các gợi ý để hỗ trợ các chức năng cho phương thức truy cập, thực hiện tất cả các công việc thực sự để truy cập các chỉ kèo bóng đá c1. Các chức năng hỗ trợ này là các hàm C đơn giản và không thể nhìn thấy hoặc có thể gọi được ở cấp SQL. Các chức năng hỗ trợ được mô tả trongPhần 62.2.

Cấu trúcindexAmRoutineđược xác định như vậy:

10159_13184

Để hữu ích, một phương thức truy cập chỉ kèo bóng đá c1 cũng phải có một hoặc nhiềuGia đình vận hànhkèo bóng đá c1 lớp toán tửđược xác định trongpg_opf Family, PG_OPCLASS, pg_amoppg_amproc. Các kèo bóng đá c1 này cho phép người lập kế hoạch xác định loại trình độ truy vấn nào có thể được sử dụng với các chỉ kèo bóng đá c1 của phương thức truy cập này. Các gia đình và lớp học được mô tả trongPhần 38.16, đó là tài liệu tiên quyết để đọc chương này.

Một chỉ kèo bóng đá c1 riêng lẻ được xác định bởi Apg_ classkèo bóng đá c1 mô tả nó như một mối quan hệ vật lý, cộng với Apg_indexkèo bóng đá c1 hiển thị nội dung logic của chỉ kèo bóng đá c1 - nghĩa là tập hợp các cột chỉ kèo bóng đá c1 mà nó có và ngữ nghĩa của các cột đó, được ghi lại bởi các lớp toán tử liên quan. Các cột chỉ kèo bóng đá c1 (giá trị chính) có thể là các cột đơn giản của bảng bên dưới hoặc các biểu thức trên các hàng bảng. Phương thức truy cập chỉ kèo bóng đá c1 thường không quan tâm đến việc các giá trị khóa chỉ kèo bóng đá c1 đến từ đâu (nó luôn được trao các giá trị khóa được tính toán trước) nhưng nó sẽ rất quan tâm đến thông tin lớp toán tử trongpg_index. Cả hai kèo bóng đá c1 nhập danh kèo bóng đá c1 này đều có thể được truy cập như một phần củaquan hệCấu trúc dữ liệu được truyền cho tất cả các hoạt động trên chỉ kèo bóng đá c1.

Một số trường cờ củaindexAmRoutineCó ý nghĩa không đáng tin cậy. kèo bóng đá c1 yêu cầu củaAmcanuniqueđược thảo luận trongPhần 62.5. TheAmcanmulticolFlag khẳng định rằng phương thức truy cập hỗ trợ các chỉ kèo bóng đá c1 nhiều cột, trong khiAmoptionalkeykhẳng định rằng nó cho phép quét trong đó không có mệnh đề hạn chế có thể lập chỉ kèo bóng đá c1 nào được đưa ra cho cột chỉ kèo bóng đá c1 đầu tiên. KhiAmcanmulticollà sai,AmoptionalkeyVề cơ bản nói rằng phương thức truy cập có hỗ trợ quét toàn bộ chỉ số mà không có điều khoản hạn chế nào không. Các phương thức truy cập hỗ trợ nhiều cột chỉ kèo bóng đá c1phảiQuét hỗ trợ bỏ qua các hạn chế đối với bất kỳ hoặc tất cả các cột sau lần đầu tiên; Tuy nhiên, chúng được phép yêu cầu một số hạn chế xuất hiện cho cột chỉ kèo bóng đá c1 đầu tiên và điều này được báo hiệu bằng cách cài đặtAmoptionalkeySai. Một lý do mà một chỉ kèo bóng đá c1 có thể đặtAmoptionalkey16486_16895AmoptionalkeyĐúng phải chỉ kèo bóng đá c1 nulls, vì người lập kế hoạch có thể quyết định sử dụng một chỉ kèo bóng đá c1 như vậy mà không có khóa quét nào cả. Một hạn chế liên quan là phương thức truy cập chỉ kèo bóng đá c1 hỗ trợ nhiều cột chỉ kèo bóng đá c1phảiHỗ trợ lập chỉ kèo bóng đá c1 các giá trị null trong các cột sau lần đầu tiên, vì người lập kế hoạch sẽ giả sử chỉ kèo bóng đá c1 có thể được sử dụng cho các truy vấn không hạn chế các cột này. Ví dụ: xem xét một chỉ kèo bóng đá c1 trên (a, b) và truy vấn vớitrong đó a = 4. Hệ thống sẽ giả sử chỉ kèo bóng đá c1 có thể được sử dụng để quét các hàng vớiA = 4, Điều này là sai nếu chỉ kèo bóng đá c1 bỏ qua các hàng trong đóBlà null. Tuy nhiên, đó là OK để bỏ qua các hàng trong đó cột được lập chỉ kèo bóng đá c1 đầu tiên là null. Phương thức truy cập chỉ kèo bóng đá c1 không có chỉ kèo bóng đá c1 nulls cũng có thể đặtAmsearchNulls, chỉ ra rằng nó hỗ trợlà nullkhông phải là nullmệnh đề là điều kiện tìm kiếm.

TheAmcanincludecờ cho biết liệu phương thức truy cập có hỗ trợBao gồmHồikèo bóng đá c1 cột, đó là nó có thể lưu trữ (không xử lý) kèo bóng đá c1 cột bổ sung ngoài (kèo bóng đá c1) cột chính. kèo bóng đá c1 yêu cầu của đoạn trước chỉ áp dụng cho kèo bóng đá c1 cột chính. Cụ thể, sự kết hợp củaAmcanmulticol=SaiAmcaninclude=TRUElà hợp lý: Điều đó có nghĩa là chỉ có thể có một cột chính, nhưng cũng có thể được bao gồm (kèo bóng đá c1) cột. Ngoài ra, kèo bóng đá c1 cột bao gồm phải được phép là null, độc lập vớiAmoptionalkey.

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 phù hợp Kinh nghiệm của bạn với tính năng 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.