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 tỷ lệ kèo bóng đá tối nay trang chohiện tạiPhiên bản hoặc tỷ lệ kèo bóng đá tối nay trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

61.3. tỷ lệ kèo bóng đá tối nay

TheGinGiao diện có mức độ trừu tượng cao, yêu cầu người thực hiện phương thức truy cập chỉ để thực hiện ngữ nghĩa của kiểu dữ liệu được truy cập. TheGinBản thân lớp chăm sóc sự đồ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ó đượcGinPhương pháp truy cập làm việc là thực hiện một vài phương pháp do người dùng xác định, 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, tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối nay và truy vấn có thể lập chỉ tỷ lệ kèo bóng đá tối nay. Tóm lại,GinKết hợp độ tỷ lệ kèo bóng đá tối nay với tính tổng quát, tái sử dụng mã và giao diện sạch.

Có ba phương thức mà tỷ lệ kèo bóng đá tối nay lớp toán tử choGinPhải cung cấp:

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 phím thứ nhất có nhỏ hơn, bằng hoặc lớn hơn thứ hai. Các phím null không bao giờ được truyền cho chức tỷ lệ kèo bóng đá tối nay này.

Datum *ExtractValue (Datum ItemValue, Int32 *NKEYS,

Trả về một mảng palloc'd gồm một tỷ lệ kèo bóng đá tối nay được cung cấp một tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối 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 palloc tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay không chứa khóa.

Datum *ExtractQuery (Query Datum, Int32 *NKEYS, StrategyNumber N, Bool ** pmatch, Con trỏ ** Extra_Data, Bool ** Nullflags, Int32 *SearchMode)

Trả về tỷ lệ kèo bóng đá tối nay mảng palloc'd gồm các khóa được cung cấp tỷ lệ kèo bóng đá tối nay giá trị được truy vấn; đó là,Truy vấnlà giá trị ở phía bên phải của toán tử có thể lập chỉ tỷ lệ kèo bóng đá tối nay có phía bên trái là cột được lập chỉ tỷ lệ kèo bóng đá tối nay.nlà số chiến lược của toán tử trong lớp toán tử (xemPhầ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ên sử dụng để trích xuất các giá trị khóa. 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 palloc tỷ lệ kèo bóng đá tối 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à đối số đầu ra 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ị mà nó được khởi tạo trước khi gọi), chỉ các tỷ lệ kèo bóng đá tối nay phù hợp với ít nhất một trong các khóa trả về được coi là phù hợp ứng cử viên. Nếu như*SearchModeđược đặt thànhgin_search_mode_include_empty, sau đó ngoài các tỷ lệ kèo bóng đá tối nay chứa ít nhất một phím phù hợp, các tỷ lệ kèo bóng đá tối nay không chứa khóa nào được coi là phù hợp ứng cử viên. (Ví dụ: Chế độ này rất hữu ích để triển khai các toán tử là bộ phận của các toán tử.) Nếu*SearchModeđược đặt thànhgin_search_mode_all, thì tất cả các tỷ lệ kèo bóng đá tối nay không null trong chỉ tỷ lệ kèo bóng đá tối nay được coi là phù hợp ứng cử viên, cho dù chúng có khớp với bất kỳ khóa nào được trả về hay không. .Access/Gin.H.

pmatchlà tỷ lệ kèo bóng đá tối nay đối số đầu ra để sử dụng khi hỗ trợ kết hợp tỷ lệ kèo bóng đá tối nay phần. Để sử dụng nó,Trích xuấtPhải phân bổ tỷ lệ kèo bóng đá tối nay mảng*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 true nếu khóa tương ứng yêu cầu khớp tỷ lệ kèo bóng đá tối nay phần, sai nếu không.*pmatchđược đặt thànhnullSau đó, Gin giả định rằng không cần kết hợp tỷ lệ kèo bóng đá tối nay phần. Biến được khởi tạo thànhnullTrước khi gọi, vì vậy đối số này có thể bị bỏ qua bởi các lớp toán tử không hỗ trợ khớp tỷ lệ kèo bóng đá tối nay phần.

Extra_Datalà đối số đầu ra cho phépTrích xuấtĐể truyền dữ liệu bổ sung chonhất quánCompanPartialPhương pháp. Để sử dụng nó,Trích xuấtPhải phân bổ tỷ lệ kèo bóng đá tối nay mảng*NKEYSCon trỏ và lưu trữ địa chỉ của nó tại*Extra_data, sau đó lưu trữ bất cứ điều gì nó muốn vào các con trỏ riêng lẻ. Biến được khởi tạo thànhnullTrước khi 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 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ánhspartialPhương pháp.

Một lớp toán tử cũng phải cung cấp một chức tỷ lệ kèo bóng đá tối nay để kiểm tra xem một mục được lập chỉ mục có khớp với truy vấn không. Nó có hai hương vị, một booleannhất quánHàm và tỷ lệ kèo bóng đá tối nay ternaryTriconsistentchức tỷ lệ kèo bóng đá tối nay.TriconsistentBao gồm chức tỷ lệ kèo bóng đá tối nay của cả hai, do đó, việc cung cấp triconsistent một mình là đủ. Tuy nhiên, nếu biến thể Boolean rẻ hơn đáng kể để tính toán, thì có thể thuận lợi để cung cấp cả hai.

15358_15507

Trả về đúng nếu một tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối 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). Chức tỷ lệ kèo bóng đá tối 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 tỷ lệ kèo bóng đá tối nay một cách rõ ràng. Thay vào đó, những gì có sẵn là kiến ​​thức về giá trị khóa nào được trích xuất từ ​​truy vấn xuất hiện trong một tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối nay nhất định.Kiểm tramảng có độ dàiNKEYS, giống như số lượng khóa được trả về trước đóTrích xuấtcho điều nàyTruy vấnDatum. Mỗi yếu tố củaKiểm traMảng là đúng nếu tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối nay chứa khóa truy vấn tương ứng, tức là, nếu (kiểm tra [i] == true) phím thứ i củaTrích xuấtMảng kết quả có mặt trong tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối 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ậyQuerykeys []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ề phím NULL trongQuerykeys [], tương ứngKiểm tra []Phần tử là đúng nếu tỷ lệ kèo bóng đá tối nay được lập chỉ tỷ lệ kèo bóng đá tối nay chứa khóa null; đó là ngữ nghĩa củaKiểm tra []giống nhưkhông khác biệt với. Thenhất quánchức tỷ lệ kèo bóng đá tối nay có thể kiểm tra tương ứngnullflags []Phần tử nếu cần phải nói sự khác biệt giữa khớp giá trị thông thường và khớp null.

Khi thành công,*Rechecknên được đặt thành true nếu tple heap cần được kiểm tra lại đối với toán tử truy vấn hoặc sai nếu kiểm tra chỉ tỷ lệ kèo bóng đá tối nay là chính xác. Đó là, một giá trị trả về sai đảm bảo rằng Tuple Heap không khớp với truy vấn;*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*Recheck17930_18112

18148_18307

Triconsistentgiống vớinhất quán, nhưng thay vì booleanKiểm tra [], Có ba giá trị có thể cho mỗi khóa:gin_true, Gin_FalseGin_Maybe. Gin_FalseGin_TrueCó ý nghĩa tương tự như các giá trị boolean thông thường.Gin_Maybecó nghĩa là sự hiện diện của khóa đó không được biết đến. KhiGin_MaybeGiá trị có mặt, chức tỷ lệ kèo bóng đá tối nay chỉ nên trả về Gin_True nếu mục khớp với việc mục chỉ mục có chứa các khóa truy vấn tương ứng hay không. Tương tự như vậy, chức tỷ lệ kèo bóng đá tối nay phải trả về Gin_False chỉ khi mặt hàng không khớp, cho dù nó có chứa các phím Gin_maybe hay không.

Khi không có giá trị gin_maybe trongKiểm traVector,gin_maybeGiá trị trả về tương đương với cài đặtRecheckcờ trong booleannhất quánchức tỷ lệ kèo bóng đá tối nay.

Tùy chọn, tỷ lệ kèo bóng đá tối nay lớp toán tử choGinCó thể cung cấp phương pháp sau:

19785_19873

So sánh khóa truy vấn khớp một phần với khóa chỉ tỷ lệ kèo bóng đá tối nay. Trả về một số nguyên có dấu cho biết kết quả: nhỏ hơn 0 có nghĩa là khóa chỉ tỷ lệ kèo bóng đá tối nay không khớp với truy vấn, nhưng việc quét chỉ tỷ lệ kèo bóng đá tối nay sẽ tiếp tục;ncủa toán tử tạo ra truy vấn khớp tỷ lệ kèo bóng đá tối nay phần được cung cấp, trong trường hợp nên cần thiết để xác định khi nào nên kết thúc quá trình quét. Cũng,Extra_Datalà phần tử tương ứng của mảng dữ liệu phụ đượ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 chức tỷ lệ kèo bóng đá tối nay này.

Để hỗ trợ"Kết hợp tỷ lệ kèo bóng đá tối nay phần"Truy vấn, lớp toán tử phải cung cấpCompanPartialPhương pháp và nóTrích xuấtPhương thức phải đặtpmatchTham số khi gặp phải tỷ lệ kèo bóng đá tối nay phần truy vấn khớp tỷ lệ kèo bóng đá tối nay phần. Nhìn thấyPhần 61.4.2Để biết 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 toán tử. Các giá trị tỷ lệ kèo bóng đá tối nay được truyền đếnExtractValueluôn thuộc loại đầu vào của lớp vận hành 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ất, nhất quánTriconsistentlà 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 tỷ lệ kèo bóng đá tối nay, miễn là các giá trị khóa của loại đúng có thể được trích xuất từ ​​nó.