Phiên bản được hỗ trợ:16 / 15 / 14 / 13
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá hom nay trang chohiện tạiPhiên bản hoặc kèo bóng đá hom nay trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

57.2. kèo bóng đá hom nay

TheGinGiao diện có cao mức độ trừu tượng, chỉ yêu cầu người thực hiện phương thức truy cập Để thực hiện ngữ nghĩa của loại dữ liệu đang được truy cập. The8900_8905Lớp tự chăm sóc Đồng thời, ghi nhật ký và tìm kiếm cấu trúc cây.

Tất cả những gì cần thiết để có được kèo bóng đá hom nayGinPhương thức truy cập làm việc là để thực hiện bốn (hoặc năm) người dùng do người dùng xác định các phương pháp, xác định hành vi của các khóa trong cây và Mối quan hệ giữa các khóa, các kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay và truy vấn có thể lập chỉ kèo bóng đá hom nay. Tóm lại,GinKết hợp kèo bóng đá hom nay với tính tổng quát, tái sử dụng mã và giao diện.

Bốn phương thức mà lớp toán tử choGin​​Phải cung cấp là:

int so sánh (Datum A, Datum b)

So sánh hai khóa (không được lập chỉ mục!) Và trả về một số nguyên nhỏ hơn 0, 0 hoặc lớn hơn 0, cho biết liệu Khóa đầu tiên nhỏ hơn, bằng hoặc lớn hơn thứ hai. Vô giá trị Các khóa không bao giờ được truyền cho chức kèo bóng đá hom nay này.

9878_9948

Trả về một mảng palloc'd gồm các khóa được cung cấp một kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay. Số lượng khóa trả về phải được lưu trữ thành*NKEYS. Nếu bất kỳ phím nào có thể là null, cũng kèo bóng đá hom nay mảng*NKEYS boolTrường, lưu trữ địa chỉ của nó tại*nullflags, và đặt các cờ null này khi cần.*nullflagscó thể để lạinull(giá trị ban đầu của nó) nếu tất cả các khóa không phải là null. Giá trị trả về có thể lànullNếu mặt hàng không chứa khóa.

Datum *ExtractQuery (truy vấn mốc, int32 *NKEYS, StrategyNumber n, bool ** pmatch, con trỏ ** thêm_data, bool ** nullflags, int32 *searchMode)

Trả về kèo bóng đá hom nay mảng palloc'd gồm các khóa được cung cấp kèo bóng đá hom nay giá trị được truy vấn; đó là,Truy vấnlà giá trị trên Phía bên phải của một toán tử có thể lập chỉ kèo bóng đá hom nay có bên tay trái là cột được lập chỉ kèo bóng đá hom nay.n10966_11039Phần 35.14.2). Thường,Trích xuấtSẽ cần tham khảo ý kiếnnĐể xác định loại dữ liệu củaTruy vấnVà phương pháp nên sử dụng để trích xuất khóa giá trị. Số lượng khóa trả về phải được lưu trữ thành*NKEYS. Nếu bất kỳ phím nào có thể là null, cũng kèo bóng đá hom nay mảng*NKEYS boolTrường, lưu trữ địa chỉ của nó tại*nullflags, và đặt các cờ null này khi cần.*nullflagsCó thể để lạinull(giá trị ban đầu của nó) nếu tất cả các khóa không phải là null. Giá trị trả về có thể lànullNếuTruy vấnKhông chứa khóa.

SearchModelà kèo bóng đá hom nay đối số đầu ra mà cho phépTrích xuấtĐể chỉ định Chi tiết về cách tìm kiếm sẽ được thực hiện. Nếu như*SearchModeđược đặt thànhGin_Search_Mode_Default(đó là giá trị của nó khởi tạo trước khi gọi), chỉ các kèo bóng đá hom nay phù hợp với ít nhất một trong số Các khóa trả lại được coi là trận đấu ứng cử viên. Nếu như*SearchModeđược đặt thànhGIN_SEARCH_MODE_INCLUDE_EMPTY, sau đó ngoài các kèo bóng đá hom nay chứa ít nhất một phím phù hợp, các kèo bóng đá hom nay không chứa Khóa ở tất cả được coi là trận đấu ứng cử viên. (Chế độ này hữu ích Ví dụ, để triển khai các toán tử là người điều khiển.) Nếu12605_12618được đặt thànhGIN_SEARCH_MODE_ALL12677_13139access/gin.h.

pmatchlà đối số đầu ra để sử dụng Khi kết hợp kèo bóng đá hom nay phần được hỗ trợ. Để sử dụng nó,Trích xuất13334_13363*NKEYSBooleans và lưu trữ địa chỉ của nó tại*pmatch. Mỗi phần tử của mảng phải được đặt thành Đúng nếu khóa tương ứng yêu cầu khớp kèo bóng đá hom nay phần, sai nếu không. Nếu như*pmatchđược đặt thànhnullSau đó, Gin giả định rằng không cần kết hợp kèo bóng đá hom nay phần. Biến được khởi tạo thànhnullTrước Gọi, vì vậy đối số này có thể đơn giản bị bỏ qua bởi các lớp toán tử không hỗ trợ kết hợp kèo bóng đá hom nay phần.

Extra_Datalà kèo bóng đá hom nay đối số đầu ra mà cho phépTrích xuấtĐể vượt qua Dữ liệu bổ sung chonhất quánso sánhspartialPhương pháp. Để sử dụng nó,Trích xuấtPhải phân bổ kèo bóng đá hom nay mảng của*NKEYSCon trỏ và lưu trữ địa chỉ của nó Tại*Extra_data, sau đó lưu trữ bất cứ thứ gì muốn vào các gợi ý cá nhân. Biến được khởi tạo ĐẾNnullTrước khi gọi, vì vậy đối số này có thể chỉ cần bị bỏ qua bởi các lớp toán tử không yêu cầu thêm dữ liệu. Nếu như*Extra_datađược đặt, toàn bộ mảng được chuyển chonhất quánPhương thức và phần tử thích hợp choSo sánhpartialPhương pháp.

Bool nhất quán (kiểm tra bool [], StrategyNumber n, truy vấn dữ liệu, Int32 Nkeys, Con trỏ thêm_data [], Bool *Recheck, Datum Querykeys [], Bool Nullflags [])

Trả về đúng nếu một kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay thỏa mãn toán tử truy vấn với số chiến lượcn(hoặc có thể thỏa mãn nó, nếu chỉ báo kiểm tra lại được trả về). Chức kèo bóng đá hom nay này không có quyền truy cập trực tiếp vào giá trị của mục được lập chỉ mục, vìGinKhông lưu trữ các kèo bóng đá hom nay rõ ràng. Đúng hơn, những gì có sẵn là kiến ​​thức về khóa nào Các giá trị được trích xuất từ ​​truy vấn xuất hiện trong một kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay nhất định. TheKiểm tramảng có độ dàiNKEYS, giống như số lượng khóa được trả về trước đó bởiTrích xuấtcho điều nàyTruy vấnDatum. Mỗi yếu tố củaKiểm traMảng là đúng nếu kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay chứa khóa truy vấn tương ứng, tức là, nếu (kiểm tra [i] == true) phím i-th củaTrích xuấtKết quả Mảng có mặt trong kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay. Bản gốcTruy vấnDatum được truyền trong trường hợpnhất quánPhương pháp cần tham khảo nó, và cũng vậy TheQuerykeys []nullflags []mảng được trả về trước đóTrích xuất. Extra_Datalà mảng dữ liệu thêm được trả về bởiTrích xuấthoặcnullNếu không.

KhiTrích xuấtTrả về kèo bóng đá hom nay null khóa trongQuerykeys [], tương ứngKiểm tra []Phần tử là đúng nếu được lập chỉ kèo bóng đá hom nay kèo bóng đá hom nay chứa một khóa null; đó là ngữ nghĩa củaKiểm tra []giống nhưkhông khác biệt TỪ. The16719_16731Hàm có thể kiểm tra tương ứngnullflags []Phần tử nếu nó cần cho biết sự khác biệt giữa kèo bóng đá hom nay giá trị thông thường khớp và kèo bóng đá hom nay trận đấu null.

Khi thành công,*Rechecknên được đặt thành Đúng nếu tuple heap cần được kiểm tra lại đối với truy vấn toán tử, hoặc sai nếu kiểm tra chỉ kèo bóng đá hom nay là chính xác. Đó là, một sai lầm Giá trị trả về đảm bảo rằng bộ tple heap không khớp với truy vấn; Giá trị trả về thực sự với*RecheckĐặt thành sự bảo đảm sai rằng Tuple Heap không khớp với truy vấn; và giá trị trả về thực sự với*RecheckĐặt thực sự có nghĩa là Tuple heap có thể khớp với truy vấn, vì vậy nó cần được tìm nạp và kiểm tra lại bằng cách đánh giá toán tử truy vấn trực tiếp so với kèo bóng đá hom nay được lập chỉ kèo bóng đá hom nay ban đầu.

Tùy chọn, kèo bóng đá hom nay lớp toán tử choGinCó thể cung cấp phương pháp thứ năm:

int so sánhspartial (datum partial_key, Khóa mốc, StrategyNumber n, con trỏ thêm_data)

So sánh khóa truy vấn khớp một phần với khóa chỉ kèo bóng đá hom nay. Trả lại một Số nguyên có dấu hiệu cho biết kết quả: ít hơn 0 có nghĩa là khóa chỉ kèo bóng đá hom nay không khớp với truy vấn, nhưng việc quét chỉ kèo bóng đá hom nay nên Tiếp tục; Không có nghĩa là khóa chỉ kèo bóng đá hom nay phù hợp với truy vấn; lớn hơn 0 chỉ ra rằng việc quét chỉ kèo bóng đá hom nay sẽ dừng lại vì Không có nhiều trận đấu là có thể. Số chiến lượcn18233_18378Extra_DataIS Phần tử tương ứng của mảng dữ liệu thêm được thực hiện bởiTrích xuấthoặcnullNếu không có. Các phím null không bao giờ được truyền cho điều này chức kèo bóng đá hom nay.

để hỗ trợ"Kết hợp kèo bóng đá hom nay phần"Truy vấn, kèo bóng đá hom nay lớp toán tử phải cung cấpSo sánhpartialPhương pháp và nóTrích xuấtPhương thức phải đặtpmatchtham số khi truy vấn kèo bóng đá hom nay phần phù hợp gặp phải. Nhìn thấyPhần 57.3.2cho chi tiết.

Các loại dữ liệu thực tế của các loại khác nhauDatumCác giá trị được đề cập ở trên thay đổi tùy thuộc vào lớp vận hành. Các giá trị kèo bóng đá hom nay được truyền đếnExtractValueluôn là của lớp vận hành loại đầu vào và tất cả các giá trị chính phải là của lớplưu trữLoại. Loại củaTruy vấnĐối số được chuyển choTrích xuấtnhất quánlà bất cứ điều gì được chỉ định là Loại đầu vào bên phải của toán tử thành viên lớp được xác định bởi số chiến lược. Điều này không cần phải giống như loại vật phẩm, vì vậy miễn là các giá trị khóa của loại đúng có thể được trích xuất từ Nó.