PostgreSQL 9.3.25 Tài kèo bóng đá hom nay | ||||
---|---|---|---|---|
prev | UP | Chương 56. Sp-Gist | Tiếp theo |
sp-gistcung cấp một giao diệnsp-gistCore chịu trách nhiệm
Bộ đôi lá kèo bóng đá hom nay mộtsp-gistCây chứa các giá trị của cùng loại dữ kèo bóng đá hom nay với cột được lập chỉ mục.
Bộ dữ kèo bóng đá hom nay bên trong phức tạp hơn, vì chúng là điểm phân nhánhnút, đại diện cho các nhóm tương tựnhãnmô tả nó; Ví dụ, trong một radixtiền tốGiá trị mô tả tất cả các thành viên kèo bóng đá hom nay nó. Trong a
Một số thuật toán cây yêu cầu kiến thức về cấp độ (hoặc độ sâu) kèo bóng đá hom naysp-gistCore cung cấp kèo bóng đá hom nay cho
Lưu ý:Thesp-gistCoresp-gistIndexes do lưu trữ các mục nhập cho nulls trongsp-gistNgười vận hành nghiêm ngặt và do đó không thể
Có năm phương pháp do người dùng định nghĩasp-gistphải cung cấp. Tất cảNội bộĐối số, lần đầu tiên là con trỏ tớivoid, vì tất cả các kết quả kèo bóng đá hom nay chúng xuất hiện trong đầu raLeaf_consistent
Ngoài ra trả về ABooleanKết quả. Các
Năm phương thức do người dùng định nghĩa là:
config
Trả về thông tin tĩnh về triển khai chỉ mục,
TheSQLTuyên bố kèo bóng đá hom nay
Tạo hàm my_config (nội bộ, nội bộ) trả về void ...
Đối số đầu tiên là con trỏ tớispgconfiginC struct, chứa dữ kèo bóng đá hom nay đầu vào chospgconfigoutC struct, mà chức năng phải
typedef struct spgconfigin
atttypeđược thông qua để
Đối với các lớp toán tử không sử dụng tiền tố,PrefixTypecó thể được đặt thànhVOIDOID. Tương tự như vậy, đối với các lớp vận hành khôngLabelTypecó thể được đặtVOIDOID. CanreturnDatanên được đặt đúng nếu người vận hànhLongValuesoknên được đặt đúngatttypelà biếnPhần 56.3.1).
Chọn
Chọn phương thức chèn giá trị mới vào bên trong
TheSQLTuyên bố kèo bóng đá hom nay
Tạo chức năng my_choose (nội bộ, nội bộ) trả về void ...
Đối số đầu tiên là một con trỏ tớispgchooseinC struct, chứa dữ kèo bóng đá hom nay đầu vào chospgchooseoutC struct, mà chức năng phải
typedef struct spgchoosein
Datumlà mốc gốc ban đầu màLeafDatumban đầu giống nhưDatum, nhưng có thể thay đổi ở mức thấp hơn kèo bóng đá hom nayChọn
hoặcpicksplit
Phương pháp thay đổi nó. Khi chènLeafDatumlà những gì sẽ được lưu trữ trongcấplàAllthesamelà đúng nếu dòng điệnPhần).Hasprefixlà đúng nếuprefixdatumlà giá trị kèo bóng đá hom nay nó.nnodeslà số nút con có trongNodelabelslà một
TheChọn
Hàm có thể xác định
Nếu giá trị mới khớp với một trong các nút con hiện có, SETresultTypeđếnSPGMatchNode. BộNodenđến chỉ mục (từ 0) kèo bóng đá hom nay nút đó trong mảng nút. BộLeveladdđến mức tăng trongCấpgây ra do giảm dần quarestdatumđến bằngDatumNếu lớp toán tử khôngLeafDatumở cấp độ tiếp theo.
Nếu phải thêm nút con mới, đặtresultTypeđếnspgaddnode. BộNodelabelđến nhãn được sử dụng cho cái mớiNodenđến chỉ mục (từChọn
HàmSPGMatchNoderesult.
Nếu giá trị mới không phù hợp với tiền tố tuple, setresultTypeđếnspgsplittuple. Hành động này di chuyển tất cả cácprefixhasprefixĐể cho biết kèo bóng đá hom nay cái mới cóprefixprefixdatumvới giá trị tiền tố. Cái mới nàyNodelabelđến nhãn được sử dụng cho nútPostfixhasprefixĐể cho biết kèo bóng đá hom nay mới cóPostfixPrefixDatumđến tiền tốChọn
Hàm sẽ được gọi lại vớispgaddnodeKết quả, vì có lẽ làSPGMatchNodevà cho phép chèn vào
picksplit
Quyết định kèo bóng đá hom naym thế nào để tạo một bộ ba bên trong mới trên một bộ lá
TheSQLTuyên bố kèo bóng đá hom nay
Tạo hàm my_picksplit (nội bộ, nội bộ) trả về void ...
Đối số đầu tiên là con trỏ tớispgpicksplitinC struct, chứa dữ kèo bóng đá hom nay đầu vàospgpicksplitoutC struct, mà chức năng phải
typedef struct spgpicksplitin
ntupleslà số lượng láDatumslà một mảngcấplà
setHasprefixĐể cho biết kèo bóng đá hom nayprefixdatumvới giá trị tiền tố. Bộnnodesđể chỉ ra số lượng nút màNodelabelsđến một mảng các giá trị nhãn kèo bóng đá hom nay chúng.Nodelabelsđến null; nhìn thấyPhần 56.3.2Để biết chi tiết.) ĐặtMaptuplestonodesđếnLEAFTUPLEDATUMSđến một mảng các giá trịDatumsNếu lớp toán tử khôngpicksplit
Chức năng chịu trách nhiệm choNodelabels, MaptuplestonodesvàLEAFTUPLEDATUMSmảng.
Nếu có nhiều hơn một tuple được cung cấp, dự kiếnPickSplit
Hàm sẽ phân loại chúngPickSplit
Hàm cuối cùng đặt tất cả các láAllthesameĐể biểu thị điều đóChọn
vàInside_consistent
Các chức năng phải thực hiệnPhần 56.3.3Để biết thêm thông tin.
PickSplit
có thể được áp dụng cho aconfig
bộ chức năngLongValuesokđến đúng và lớn hơn một trangPhần 56.3.1cho
Inside_consistent
Trả về bộ nút (nhánh) để theo dõi trong cây
TheSQLTuyên bố kèo bóng đá hom nay
Tạo hàm my_inner_consistent (nội bộ, nội bộ) trả về void ...
Đối số đầu tiên là một con trỏ tớispginnerconsistentinC struct, chứa đầu vàospginnerconsistentoutC struct, mà
Typedef struct spginnerconsistentin
mảngScackkeys, kèo bóng đá hom nay độ dàiNKEYS, mô tả tìm kiếm chỉ mụcNKEYS= 0 ngụ ý rằng tất cả chỉ mụcSK_Strargetyvàsk_argumentTrường kèo bóng đá hom nay mỗi mảngSK_FLAGSĐể xem kèo bóng đá hom nay so sánhTái tạoValuelà(Datum) 0Ở cấp độ gốc hoặc nếuInside_consistent
Hàm không cung cấp giá trịCấplàreturnDatalàTRUENếu cần phải xây dựng lại dữ kèo bóng đá hom nay cho việc nàyconfig
chức năng được xác nhậnCanreturnData. Allthesamelà sự thật nếu bộ tuple bên trong hiện tại là"Tất cả-Same"; Trong trường hợp này tất cảPhần).Hasprefixlà đúng nếuprefixdatumlà giá trị kèo bóng đá hom nay nó.nnodeslà số nút con có trongNodelabelslà một
nnodesphải được đặt thành số lượngNodenumbersphải được đặt thành một mảng kèo bóng đá hom nay chúngLeveladdsđến một mảng kèo bóng đá hom nay cấp độTái thiếtđến một mảng các giá trịTái tạoValuesnhư null. Lưu ý rằngInside_consistent
Hàm làNodenumbers, LevelAddsvàTái tạoValuesmảng.
Leaf_consistent
Trả về đúng nếu một tuple lá thỏa mãn truy vấn.
TheSQLTuyên bố kèo bóng đá hom nay
Tạo hàm my_leaf_consistent (nội bộ, nội bộ) trả về Bool ...
Đối số đầu tiên là con trỏ tớispgleafconsistentinC struct, chứa đầu vàospgleafconsistentoutC Struct, mà
Typedef struct spgleafconsistentin
mảngDickkeys, độ dàiNKEYS, mô tả tìm kiếm chỉ mụcNKEYS= 0 ngụ ý rằng tất cả chỉ mụcSK_STREGARYvàsk_argumentTrường kèo bóng đá hom nay mỗi mảngSK_FLAGSĐể xem kèo bóng đá hom nay so sánhTái thiếtlà(Datum) 0Ở cấp độ gốc hoặc nếuInside_consistent
Hàm không cung cấp giá trịCấplàreturnDatalàTRUENếu cần phải xây dựng lại dữ kèo bóng đá hom nay cho việc nàyconfig
Chức năng được xác nhậnCanreturnData. LeafDatumlà giá trị khóa được lưu trữ trong dòng điện
Hàm phải trả vềTRUENếuSaiNếuTRUEtrường hợp, nếureturnDatalàTRUEsau đóLEAFVALUEphải được đặt thành giá trịRecheckcó thể được đặt thànhTRUENếu trận đấu không chắc chắn và do đó
Tất cả các phương pháp hỗ trợ sp-gist thường được gọi trongcurrentMemoryContextSẽ được đặt lại sau khi xử lýconfig
Phương pháp là một ngoại lệ: Nó nên cố gắngconfig
Phương pháp không cần kèo bóng đá hom naym gì ngoài việc gán
Nếu cột được lập chỉ mục thuộc loại dữ kèo bóng đá hom nay có thể có được, chỉ mụcpg_get_collation ()
cơ chế.