mỗi phương thức truy cập chỉ tỷ lệ kèo bóng đá được mô tả bởi một hàng trongpg_am
Danh tỷ lệ kèo bóng đá hệ thống. Thepg_am
tỷ lệ kèo bóng đá nhập Chỉ định tên và Achức năng xử lýĐối với phương thức truy cập chỉ tỷ lệ kèo bóng đá. Các tỷ lệ kèo bóng đá này có thể được tạo và xóa bằng cách sử dụngTạo phương thức truy cậpvàPhương thức truy cập thảtỷ lệ kèo bóng đá lệnh SQL.
Hàm xử lý phương thức truy cập chỉ tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá hàm xử lý được gọi trực tiếp từ tỷ lệ kèo bóng đá lệnh SQL.indexAmRoutine
, 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ỉ tỷ lệ kèo bóng đá. TheindexAmRoutine
struct, 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá.Phần 63.2.
Cấu trúcindexAmRoutine
được xác định như vậy:
Typedef struct indexAmRoutine
Để hữu ích, một phương thức truy cập chỉ tỷ lệ kèo bóng đá cũng phải có một hoặc nhiềuGia đình vận hànhvàtỷ lệ kèo bóng đá lớp toán tửđược xác định trongPostgresql: Tài
, Postgresql:
, pg_amop
vàpg_amproc
. Các tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá của phương thức truy cập này.Phần 36.16, đó là tài liệu điều kiện tiên quyết để đọc chương này.
Một chỉ tỷ lệ kèo bóng đá riêng lẻ được xác định bởi APG_Class
tỷ lệ kèo bóng đá mô tả nó như một mối quan hệ vật lý, cộng với Apg_index
tỷ lệ kèo bóng đá hiển thị nội dung logic của chỉ tỷ lệ kèo bóng đá - nghĩa là tập hợp các cột chỉ tỷ lệ kèo bóng đá mà nó có và ngữ nghĩa của các cột đó, được chụp bởi các lớp toán tử liên quan. Các cột chỉ tỷ lệ kèo bóng đá (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.pg_index
. Cả hai tỷ lệ kèo bóng đá nhập danh tỷ lệ kèo bóng đá này đều có thể được truy cập như một phần củaMối quan hệ
Cấu trúc dữ liệu được truyền cho tất cả các hoạt động trên chỉ tỷ lệ kèo bóng đá.
Một số trường cờ củaindexAmRoutine
Có ý nghĩa không đáng tin cậy. tỷ lệ kèo bóng đá yêu cầu củaAmcanunique
được thảo luận trongPhần 63.5. TheAmcanmulticol
Flag khẳng định rằng phương thức truy cập hỗ trợ các chỉ tỷ lệ kèo bóng đá nhiều cột, trong khiAmoptionalkey
khẳng định rằng nó cho phép quét trong đó không có điều khoản hạn chế có thể lập chỉ tỷ lệ kèo bóng đá nào được đưa ra cho cột chỉ tỷ lệ kèo bóng đá đầu tiên. KhiAmcanmulticol
là sai,Amoptionalkey
Về 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ế hay không. Các phương thức truy cập hỗ trợ nhiều cột chỉ tỷ lệ kèo bóng đáphả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ỉ tỷ lệ kèo bóng đá đầu tiên và điều này được báo hiệu bằng cách cài đặtAmoptionalkey
Sai. Một lý do mà một chỉ tỷ lệ kèo bóng đáAMcó thể đặtAmoptionalkey
Sai là nếu nó không lập chỉ tỷ lệ kèo bóng đá các giá trị null. Vì hầu hết các toán tử có thể lập chỉ tỷ lệ kèo bóng đá đều nghiêm ngặt và do đó không thể trả về đúng cho các đầu vào null, nên từ cái nhìn đầu tiên hấp dẫn không lưu trữ các tỷ lệ kèo bóng đá nhập chỉ tỷ lệ kèo bóng đá cho các giá trị null: dù sao chúng cũng không bao giờ có thể được trả lại bằng cách quét chỉ tỷ lệ kèo bóng đá.Amoptionalkey
Đúng phải chỉ tỷ lệ kèo bóng đá nulls, vì người lập kế hoạch có thể quyết định sử dụng một chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá hỗ trợ nhiều cột chỉ tỷ lệ kèo bóng đáphảiHỗ trợ lập chỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá 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ỉ tỷ lệ kèo bóng đá trên (a, b) và truy vấn vớitrong đó a = 4
. Hệ thống sẽ giả sử chỉ tỷ lệ kèo bóng đá có thể được sử dụng để quét các hàng vớiA = 4
, Điều này là sai nếu chỉ tỷ lệ kèo bóng đá bỏ qua các hàng trong đóB
là null. Tuy nhiên, đó là OK để bỏ qua các hàng trong đó cột được lập chỉ tỷ lệ kèo bóng đá đầu tiên là null.AmsearchNulls
, chỉ ra rằng nó hỗ trợlà null
vàkhông phải là null
mệnh đề như điều kiện tìm kiếm.
TheAmcaninclude
cờ cho biết liệu phương thức truy cập có hỗ trợHồiBao gồmHồitỷ lệ kèo bóng đá cột, đó là nó có thể lưu trữ (mà không cần xử lý) tỷ lệ kèo bóng đá cột bổ sung ngoài (tỷ lệ kèo bóng đá) cột chính. tỷ lệ kèo bóng đá yêu cầu của đoạn trước chỉ áp dụng cho tỷ lệ kèo bóng đá cột chính.Amcanmulticol
=Sai
vàAmcaninclude
=Đúng
là 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ó (tỷ lệ kèo bóng đá) cột. Ngoài ra, tỷ lệ kèo bóng đá cột bao gồm phải được phép là null, độc lập vớiAmoptionalkey
.
TheAmsummarizing
cờ cho biết liệu phương thức truy cập có tóm tắt các bộ dữ liệu được lập chỉ tỷ lệ kèo bóng đá hay không, với việc tóm tắt độ chi tiết ít nhất là mỗi khối. Các phương thức truy cập không trỏ đến các bộ dữ liệu riêng lẻ, nhưng để chặn phạm vi (nhưBrin), có thể cho phépHOTTối ưu hóa để tiếp tục. Điều này không áp dụng cho các thuộc tính được tham chiếu trong các vị từ chỉ tỷ lệ kèo bóng đá, bản cập nhật của một thuộc tính như vậy luôn luôn vô hiệu hóaHOT.