Các chức năng xây dựng và bảo trì chỉ kèo bóng đá hom nay mà phương thức truy cập chỉ kèo bóng đá hom nay phải cung cấp trongindexAmRoutine
là:
IndexBuildResult *
Xây dựng một chỉ kèo bóng đá hom nay mới. Mối quan hệ chỉ số đã được tạo ra về mặt vật lý, nhưng trống rỗng.Ambuild
Hàm sẽ gọiIndexBuildHeapScan ()
Để quét bảng cho các bộ dữ liệu hiện có và tính toán các khóa cần được chèn vào chỉ kèo bóng đá hom nay. Hàm phải trả về một cấu trúc palloc'd chứa số liệu thống kê về chỉ kèo bóng đá hom nay mới.
Void
Xây dựng một chỉ kèo bóng đá hom nay trống và viết nó vào ngã ba khởi tạo (init_forknum
) của mối quan hệ đã cho. Phương pháp này chỉ được gọi là cho các chỉ kèo bóng đá hom nay không được tính đến;
Bool
Chèn một tuple mới vào một chỉ kèo bóng đá hom nay hiện có. TheGiá trị
vàisnull
Mảng đưa ra các giá trị khóa được lập chỉ kèo bóng đá hom nay vàHEAP_TID
là tid được lập chỉ kèo bóng đá hom nay. Nếu phương thức truy cập hỗ trợ các chỉ kèo bóng đá hom nay duy nhất (Amcanunique
cờ là đúng) sau đóCheckunique
Cho biết loại kiểm tra tính duy nhất để thực hiện. Điều này thay đổi tùy thuộc vào việc ràng buộc duy nhất có thể bị trì hoãn hay không;Phần 61.5Để biết chi tiết. Thông thường kèo bóng đá hom nay chỉ cầnnặng
tham số khi thực hiện kiểm tra tính duy nhất (kể từ đó nó sẽ phải nhìn vào đống
Giá trị kết quả boolean của hàm chỉ có ý nghĩa khiCheckunique
làđộc đáo_check_partial
. Trong trường hợp này, một kết quả thực sự có nghĩa là kèo bóng đá hom nay mới được biết đến duy nhất, trong khi sai có nghĩa là nó có thể không phải là duy nhất (và kiểm tra tính duy nhất trì hoãn phải được lên lịch).
Một số chỉ kèo bóng đá hom nay có thể không lập chỉ kèo bóng đá hom nay tất cả các bộ dữ liệu. Nếu tuple không được lập chỉ kèo bóng đá hom nay,Aminsert
Chỉ nên quay lại mà không làm gì cả.
Nếu INDEX AM muốn lưu trữ dữ liệu qua các phần chèn chỉ kèo bóng đá hom nay liên tiếp trong câu lệnh SQL, nó có thể phân bổ không gian trongIndexInfo- ii_context
và lưu trữ một con trỏ tới dữ liệu trongIndexInfo- ii_amcache
(ban đầu sẽ là null).
IndexBulkDeleteresult *
Xóa Tuple (s) khỏi chỉ kèo bóng đá hom nay. Đây là mộtXóa số lượng lớn”Hoạt động dự định sẽ được thực hiện bằng cách quét toàn bộ chỉ kèo bóng đá hom nay và kiểm tra từng kèo bóng đá hom nay để xem liệu nó có nên bị xóa không. Thông quaCallback
Hàm phải được gọi, theo kiểuCallback (
, Để xác định xem bất kỳ kèo bóng đá hom nay nhập chỉ kèo bóng đá hom nay cụ thể nào, như được xác định bởi TID được tham chiếu của nó, sẽ bị xóa. Phải trả về null hoặc một cấu trúc palloc'd chứa thống kê về tác động của hoạt động xóa.tid
, callback_state) trả về boolAmvacuumCleanup
.
vì giới hạnbảo trì_work_mem
, Ambulkdelete
Có thể cần phải được gọi nhiều lần khi nhiều bộ dữ liệu bị xóa. TheSố liệu thống kê
Đối số là kết quả của cuộc gọi trước đó cho chỉ kèo bóng đá hom nay này (nó là không cho cuộc gọi đầu tiên trong mộtVACUUM
Hoạt động). Điều này cho phép AM tích lũy số liệu thống kê trên toàn bộ hoạt động.Ambulkdelete
Sẽ sửa đổi và trả về cùng một cấu trúc nếu được thông quaSố liệu thống kê
không phải là NULL.
IndexBulkDeleteresult *
Dọn dẹp sau mộtNút hút
Hoạt động (không hoặc nhiều hơnAmbulkdelete
cuộc gọi). Điều này không phải làm bất cứ điều gì ngoài việc trả lại số liệu thống kê chỉ kèo bóng đá hom nay, nhưng nó có thể thực hiện dọn dẹp số lượng lớn như đòi lại các trang chỉ kèo bóng đá hom nay trống.Số liệu thống kê
là bất cứ điều gì cuối cùngAmbulkdelete
cuộc gọi được trả về hoặc null nếuAmbulkdelete
không được gọi vì không có bộ dữ liệu nào cần bị xóa. Nếu kết quả không phải là null, nó phải là một cấu trúc palloc'd.pg_ class
, và sẽ được báo cáo bởiVACUUM
nếuVerbose
được đưa ra. Bạn có thể trả lại NULL nếu chỉ kèo bóng đá hom nay không thay đổi trong thời gianNút hút
Hoạt động, nhưng nếu không thì các số liệu thống kê chính xác sẽ được trả về.
kể từPostgreSQL8.4,AmvacuumCleanup
cũng sẽ được gọi khi hoàn thànhPhân tích
Hoạt động. Trong trường hợp nàySố liệu thống kê
luôn luôn là null và bất kỳ giá trị trả về nào cũng sẽ bị bỏ qua. Trường hợp này có thể được phân biệt bằng cách kiểm traInfo- Analyze_only
. Khuyến cáo rằng kèo bóng đá hom nay không làm gì ngoại trừ việc dọn dẹp hậu quả trong một cuộc gọi như vậy và chỉ trong một quy trình công nhân tự động.
Bool
Kiểm tra xem chỉ kèo bóng đá hom nay có thể hỗ trợQuét chỉ có chỉ kèo bóng đá hom nayTrên cột đã cho, bằng cách trả về giá trị được lập chỉ kèo bóng đá hom nay ban đầu của cột. Số thuộc tính là dựa trên 1, tức là, ATTNO của cột đầu tiên là 1. Trả về đúng nếu được hỗ trợ, khác.Amcanreturn
trường trong nóindexAmRoutine
Cấu trúc có thể được đặt thành NULL.
Void
Ước tính chi phí quét chỉ kèo bóng đá hom nay. Chức năng này được mô tả đầy đủ trongPhần 61.6, bên dưới.
bytea *
Parse và xác nhận mảng tái định cư cho một chỉ kèo bóng đá hom nay. Điều này chỉ được gọi là khi một mảng không liên kết không có null tồn tại cho chỉ kèo bóng đá hom nay.REVOPTION
là mộtText
Mảng chứa các kèo bóng đá hom nay của biểu mẫutên
=
giá trị
. Chức năng sẽ xây dựng mộtbytea
Giá trị, sẽ được sao chép vàord_options
Trường của kèo bóng đá hom nay nhập Relcache của chỉ kèo bóng đá hom nay. Nội dung dữ liệu củabytea
Giá trị được mở cho kèo bóng đá hom nay để xác định; Hầu hết các kèo bóng đá hom nay tiêu chuẩn đều sử dụng structstdrdoptions
. Khixác thực
là đúng, hàm sẽ báo cáo thông báo lỗi phù hợp nếu bất kỳ tùy chọn nào không được nhận ra hoặc có các giá trị không hợp lệ; khixác thực
là sai, các kèo bóng đá hom nay không hợp lệ nên được bỏ qua âm thầm. (xác thực
là sai khi tải các tùy chọn đã được lưu trữ trongpg_catalog
; Một kèo bóng đá hom nay nhập không hợp lệ chỉ có thể được tìm thấy nếu phương thức truy cập đã thay đổi các quy tắc của nó cho các tùy chọn và trong trường hợp đó bỏ qua các kèo bóng đá hom nay nhập lỗi là phù hợp.) Bạn có thể trả lại NULL nếu muốn có hành vi mặc định.
Bool
TheAmproperty
Phương thức cho phép các phương thức truy cập chỉ kèo bóng đá hom nay để ghi đè hành vi mặc định củaPG_INDEX_COLUMN_HAS_PROPERTY
và các chức năng liên quan. Nếu phương thức truy cập không có bất kỳ hành vi đặc biệt nào cho các yêu cầu thuộc tính chỉ kèo bóng đá hom nay,Amproperty
trường trong nóindexAmRoutine
Cấu trúc có thể được đặt thành NULL. Nếu không,Amproperty
kèo bóng đá hom nay sẽ được gọi bằngindex_oid
vàAttno
Cả hai không choPG_INDEXAM_HAS_PROPERTY
cuộc gọi hoặc vớiindex_oid
hợp lệ vàAttno
số không choPG_INDEX_HAS_PROPERTY
cuộc gọi hoặc vớiindex_oid
hợp lệ vàAttno
lớn hơn 0 chopg_index_column_has_property
cuộc gọi.prop
là giá trị enum xác định thuộc tính đang được kiểm tra, trong khipropname
là chuỗi tên thuộc tính gốc. Nếu mã lõi không nhận ra tên thuộc tính thìprop
làAMPROP_UNKNOWN
. Các kèo bóng đá hom nay có thể xác định tên thuộc tính tùy chỉnh bằng cách kiểm trapropname
cho một trận đấu (sử dụngPG_STRCASECMP
Để phù hợp, để phù hợp với mã lõi); Đối với các tên được biết đến với mã lõi, tốt hơn là kiểm traprop
. NếuAmproperty
kèo bóng đá hom nay trả vềTRUE
Sau đó, nó đã xác định kết quả kiểm tra thuộc tính: Nó phải đặt*res
với giá trị boolean để trả về hoặc đặt*isnull
đếnTRUE
Để trả lại một null. (Cả hai biến được tham chiếu đều được khởi tạo thànhSai
Trước cuộc gọi.) NếuAmproperty
kèo bóng đá hom nay trả vềSai
Sau đó, mã cốt lõi sẽ tiến hành logic bình thường để xác định kết quả kiểm tra thuộc tính.
Các kèo bóng đá hom nay hỗ trợ các toán tử đặt hàng nên thực hiệnAMPROP_DISTANCE_ORDERABLE
Kiểm tra thuộc tính, vì mã cốt lõi không biết cách làm điều đó và sẽ trả về NULL. Nó cũng có thể là lợi thế để thực hiệnAMProp_Returnable
Kiểm tra, nếu điều đó có thể được thực hiện với giá rẻ hơn bằng cách mở chỉ kèo bóng đá hom nay và gọiAmcanreturn
, đó là hành vi mặc định của mã cốt lõi. Hành vi mặc định phải thỏa đáng cho tất cả các thuộc tính tiêu chuẩn khác.
Bool
Xác thực các kèo bóng đá hom nay nhập danh kèo bóng đá hom nay cho lớp toán tử được chỉ định, cho đến khi phương thức truy cập có thể làm điều đó một cách hợp lý. Ví dụ, điều này có thể bao gồm kiểm tra rằng tất cả các chức năng hỗ trợ cần thiết được cung cấp.amvalidate
Hàm phải trả về sai nếu OPClass không hợp lệ. Các vấn đề nên được báo cáo vớiEREPORT
Tin nhắn.
kèo bóng đá hom nay đích của một chỉ kèo bóng đá hom nay, tất nhiên, là để hỗ trợ quét cho các bộ dữ liệu phù hợp với một chỉ kèo bóng đá hom nayWHERE
Điều kiện, thường được gọi làvòng loạihoặcKhóa quét. Các ngữ nghĩa của quét chỉ kèo bóng đá hom nay được mô tả đầy đủ hơn trongPhần 61.3, bên dưới. Phương thức truy cập chỉ kèo bóng đá hom nay có thể hỗ trợtrơnSCAN INDEX,bitmapQuét chỉ kèo bóng đá hom nay hoặc cả hai. Các chức năng liên quan đến quét mà phương thức truy cập chỉ kèo bóng đá hom nay phải hoặc có thể cung cấp là:
IndexScandesc
Chuẩn bị cho quét chỉ kèo bóng đá hom nay. TheNKEYS
vàNorderbys
tham số cho biết số lượng các trình điều khiển và toán tử đặt hàng sẽ được sử dụng trong quét; Đây có thể hữu ích cho kèo bóng đá hom nay đích phân bổ không gian.phảiTạo cấu trúc này bằng cách gọiMối quan hệ IndexScan ()
. Trong hầu hết các trường hợpAmbeginscan
không ngoài việc thực hiện cuộc gọi đó và có thể có được ổ khóa; Các phần thú vị của khởi động quét chỉ kèo bóng đá hom nay là trongAmrescan
.
Void
Bắt đầu hoặc khởi động lại quét chỉ kèo bóng đá hom nay, có thể có các khóa quét mới. (Để khởi động lại bằng các phím được thông qua trước đó, NULL được truyền choKeys
và/hoặcOrderBys
..Ambeginscan
. Trong thực tế, tính năng khởi động lại được sử dụng khi một tuple bên ngoài mới được chọn bởi một vòng lặp lồng nhau và do đó cần có giá trị so sánh khóa mới, nhưng cấu trúc khóa quét vẫn giữ nguyên.
Bool
Lấy phần tiếp theo trong lần quét đã cho, di chuyển theo hướng đã cho (tiến hoặc lùi trong chỉ kèo bóng đá hom nay). Trả về đúng nếu có được một tuple, sai nếu không còn các bộ dữ liệu phù hợp.quét
Cấu trúc. Lưu ý rằngThành côngHồichỉ có nghĩa là chỉ kèo bóng đá hom nay chứa một kèo bóng đá hom nay nhập phù hợp với các khóa quét, chứ không phải tuple nhất thiết vẫn tồn tại trong đống hoặc sẽ vượt qua bài kiểm tra ảnh chụp nhanh của người gọi. Về thành công,Amgettuple
cũng phải đặtSCAN- XS_RECHECK
Đúng hoặc sai. Sai có nghĩa là chắc chắn rằng kèo bóng đá hom nay nhập chỉ kèo bóng đá hom nay phù hợp với các khóa quét.MấtHàngCác toán tử chỉ kèo bóng đá hom nay. Lưu ý rằng việc kiểm tra lại sẽ chỉ mở rộng đến các điều kiện quét;Amgettuple
người gọi.
Nếu chỉ kèo bóng đá hom nay hỗ trợPostgresql: Tài liệu: 11: 11.9. Quét(tức là,Amcanreturn
Trả về đúng cho bất kỳ cột nào của nó), sau đó thành công, AM cũng phải kiểm traSCAN- XS_WANT_ITUP
và nếu đó là sự thật, nó phải trả về dữ liệu được lập chỉ kèo bóng đá hom nay ban đầu cho kèo bóng đá hom nay nhập chỉ kèo bóng đá hom nay. Các cột màAmcanreturn
Trả về sai có thể được trả về dưới dạng nulls. Dữ liệu có thể được trả về dưới dạngIndextuple
Con trỏ được lưu trữ tạiSCAN- XS_ITUP
, với mô tả tupleSCAN- XS_ITUPDESC
; hoặc dưới dạng ACon trỏ được lưu trữ tại
SCAN- XS_HITUP
, với mô tả tupleSCAN- XS_HITUPDESC
. (Nên sử dụng định dạng sau khi tái cấu trúc dữ liệu có thể không phù hợp vớiIndextuple
.) Trong cả hai trường hợp, quản lý dữ liệu được tham chiếu bởi con trỏ là trách nhiệm của kèo bóng đá hom nay. Dữ liệu phải vẫn tốt ít nhất là cho đến khi tiếp theoAmgettuple
, Amrescan
hoặcAmendscan
Gọi cho quét.
TheAmgettuple
Chức năng chỉ cần được cung cấp nếu kèo bóng đá hom nay hỗ trợMạnhtrơnHồiQuét chỉ kèo bóng đá hom nay. Nếu nó không,Amgettuple
trường trong nóindexAmRoutine
Cấu trúc phải được đặt thành NULL.
Int64
Lấy tất cả các bộ dữ liệu trong lần quét đã cho và thêm chúng vào người gọi được cung cấpTIDBITMAP
(nghĩa là hoặc tập hợp ID Tuple thành bất kỳ tập hợp nào đã có trong bitmap). Số lượng các bộ dữ liệu được lấy lại được trả về (đây có thể chỉ là một số lượng gần đúng, ví dụ, một số AMS không phát hiện các bản sao).Amgetbitmap
Có thể chỉ ra rằng việc kiểm tra các điều kiện quét là cần thiết cho ID tuple cụ thể. Điều này tương tự nhưxs_recheck
tham số đầu ra củaAmgettuple
. Lưu ý: Trong quá trình triển khai hiện tại, hỗ trợ cho tính năng này được kết hợp với sự hỗ trợ cho việc lưu trữ lỗ của chính bitmap và do đó người gọi kiểm tra cả hai điều kiện quét và vị từ chỉ số một phần (nếu có) cho các bộ kiểm tra có thể kiểm tra lại.Amgetbitmap
vàAmgettuple
Không thể được sử dụng trong cùng một chỉ số quét; Cũng có những hạn chế khác khi sử dụngAmgetbitmap
, như được giải thích trongPhần 61.3.
TheAmgetbitmap
Chức năng chỉ cần được cung cấp nếu kèo bóng đá hom nay hỗ trợBitmap”Quét chỉ kèo bóng đá hom nay. Nếu nó không,Amgetbitmap
trường trong nóindexAmRoutine
struct phải được đặt thành NULL.
VOID
Kết thúc tài nguyên quét và phát hành. TheSCAN
Bản thân cấu trúc không nên được giải phóng, nhưng bất kỳ khóa hoặc chân nào được thực hiện bên trong bằng kèo bóng đá hom nay phải được phát hành, cũng như bất kỳ bộ nhớ nào khác được phân bổ bởiAmbeginscan
và các chức năng liên quan đến quét khác.
Void
Đánh dấu vị trí quét hiện tại. kèo bóng đá hom nay chỉ cần hỗ trợ một vị trí quét được ghi nhớ trên mỗi lần quét.
TheAmmarkpos
Chức năng chỉ cần được cung cấp nếu kèo bóng đá hom nay hỗ trợ quét theo thứ tự. Nếu nó không,Ammarkpos
trường trong nóindexAmRoutine
Cấu trúc có thể được đặt thành NULL.
Void
Khôi phục quét về vị trí được đánh dấu gần đây nhất.
TheAmrestrpos
Chức năng chỉ cần được cung cấp nếu kèo bóng đá hom nay hỗ trợ quét theo thứ tự. Nếu nó không,Amrestrpos
trường trong nóindexAmRoutine
struct có thể được đặt thành NULL.
Ngoài việc hỗ trợ quét chỉ kèo bóng đá hom nay thông thường, một số loại chỉ kèo bóng đá hom nay có thể muốn hỗ trợQuét chỉ kèo bóng đá hom nay song song, cho phép nhiều phụ trợ hợp tác trong việc thực hiện quét chỉ kèo bóng đá hom nay. Phương pháp truy cập chỉ kèo bóng đá hom nay phải sắp xếp mọi thứ để mỗi quá trình hợp tác trả về một tập hợp con của các bộ dữ liệu được thực hiện bằng cách quét chỉ số không song song thông thường, nhưng theo cách mà sự kết hợp của các tập hợp con đó bằng với tập hợp các bộ dữ liệu sẽ được trả lại bằng cách quét chỉ số không song song thông thường.
Kích thước
Ước tính và trả về số byte của bộ nhớ chia sẻ động mà kèo bóng đá hom nay sẽ cần thiết để thực hiện quét song song. .song song Indexscandescdata
.)
Không cần thiết phải thực hiện chức năng này cho các kèo bóng đá hom nay không hỗ trợ quét song song hoặc số lượng byte bổ sung cần thiết là bằng không.
Void
Hàm này sẽ được gọi để khởi tạo bộ nhớ chia sẻ động khi bắt đầu quét song song.Target
Sẽ chỉ vào ít nhất số byte đã được trả về trước đóAmestimateParallelScan
và chức năng này có thể sử dụng lượng không gian đó để lưu trữ bất kỳ dữ liệu nào mà nó muốn.
Không cần thiết phải thực hiện chức năng này cho các kèo bóng đá hom nay không hỗ trợ quét song song hoặc trong trường hợp không gian bộ nhớ được chia sẻ cần thiết không cần khởi tạo.
VOID
Hàm này, nếu được thực hiện, sẽ được gọi khi quét chỉ kèo bóng đá hom nay song song phải được khởi động lại. Nó sẽ đặt lại bất kỳ trạng thái chia sẻ nào được thiết lập bởiAminitparallelscan
sao cho việc quét sẽ được khởi động lại từ đầu.