Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5

61.1. Tạo đường dẫn quét tỷ lệ kèo bóng đá tối nay#

Nhà cung cấp quét tỷ lệ kèo bóng đá tối nay thường sẽ thêm các đường dẫn cho mối quan hệ cơ sở bằng cách đặt móc sau, được gọi sau khi mã lõi đã tạo ra tất cả các đường dẫn truy cập có thể cho mối quan hệ (ngoại trừ các đường dẫn thu thập, được thực hiện sau cuộc gọi này để chúng có thể sử dụng các đường dẫn một phần được thêm vào móc):

typedef void ( *set_rel_pathlist_hook_type) (plannerInfo *root
                                            Reloptinfo *rel,
                                            INDEX RTI,
                                            RangetBlentry *rte);
extern pgdllimport set_rel_pathlist_hook_type set_rel_pathlist_hook;

9241_9416CustomPathĐối tượng và thêm chúng vàorelsử dụngadd_path. Nhà cung cấp quét tỷ lệ kèo bóng đá tối nay chịu trách nhiệm khởi tạoCustomPathĐối tượng, được khai báo như thế này:

Typedef Struct Custompath

    Đường tỷ lệ kèo bóng đá tối nay đường tỷ lệ kèo bóng đá tối nay;
    Cờ Uint32;
    Danh sách *Custom_paths;
    Danh sách *Custom_Private;
    Phương thức CustomPathMethods *;
 CustomPath;

Pathphải được khởi tạo như đối với bất kỳ đường tỷ lệ kèo bóng đá tối nay nào khác, bao gồm ước tính số hàng, bắt đầu và tổng chi phí và sắp xếp thứ tự được cung cấp bởi đường tỷ lệ kèo bóng đá tối nay này.cờlà một chút mặt nạ, trong đó chỉ định xem nhà cung cấp quét có thể hỗ trợ các khả năng tỷ lệ kèo bóng đá tối nay chọn nhất định hay không.cờnên bao gồmCustompath_support_backward_scanNếu đường dẫn tỷ lệ kèo bóng đá tối nay có thể hỗ trợ quét ngược,CustomPath_Support_Mark_RestoreNếu nó có thể hỗ trợ đánh dấu và khôi phục vàCustomPath_Support_ProjectionNếu nó có thể thực hiện các phép chiếu. (Nếu nhưCustomPath_Support_Projectionkhông được đặt, nút quét sẽ chỉ được yêu cầu tạo ra Vars của mối quan hệ được quét; Trong khi nếu cờ đó được đặt, nút quét phải có khả năng đánh giá các biểu thức vô hướng trên các vars này.) Một tỷ lệ kèo bóng đá tối nay chọncustom_pathslà danh sáchđường tỷ lệ kèo bóng đá tối nayCác nút được sử dụng bởi nút đường tỷ lệ kèo bóng đá tối nay này; Chúng sẽ được chuyển thànhPlannút của người lập kế hoạch.custom_privatecó thể được sử dụng để lưu trữ dữ liệu riêng tư của đường dẫn tỷ lệ kèo bóng đá tối nay. Dữ liệu riêng nên được lưu trữ trong một hình thức có thể được xử lý bằngNodetostring, để các thói quen gỡ lỗi cố gắng in đường dẫn tỷ lệ kèo bóng đá tối nay sẽ hoạt động như được thiết kế.Phương pháp11420_11557

Nhà cung cấp quét tỷ lệ kèo bóng đá tối nay cũng có thể cung cấp các đường dẫn tham gia. Giống như đối với các quan hệ cơ sở, một đường dẫn như vậy phải tạo ra cùng một đầu ra như bình thường được tạo ra bởi sự thay thế của nó. Để thực hiện điều này, nhà cung cấp tham gia sẽ đặt hook sau, sau đó trong hàm hook, tạoCustomPathĐường tỷ lệ kèo bóng đá tối nay cho mối quan hệ tham gia.

typedef void ( *set_join_pathlist_hook_type) (plannerInfo *root,
                                             Reloptinfo *tham gia,
                                             Reloptinfo *outerrel,
                                             Reloptinfo *bên trong,
                                             Jontype tham gia,
                                             JoinPathExtradata *Extra);
extern pgdllimport set_join_pathlist_hook_type set_join_pathlist_hook;

Móc này sẽ được gọi nhiều lần cho cùng một mối quan hệ tham gia, với các kết hợp khác nhau của quan hệ bên trong và bên ngoài; Trách nhiệm của móc là giảm thiểu công việc trùng lặp.

12765_12807#

Kế hoạch *( *plancustompath) (PlannerInfo *root,
                         Reloptinfo *rel,
                         Custompath *best_path,
                         Danh sách *Tlist,
                         Danh sách *mệnh đề,
                         Danh sách *Custom_plans);

Chuyển đổi một đường dẫn tỷ lệ kèo bóng đá tối nay sang một kế hoạch hoàn thành. Giá trị trả về thường sẽ làCustomScanĐối tượng, mà cuộc gọi lại phải phân bổ và khởi tạo. Nhìn thấyPhần 61.2Để biết thêm chi tiết.

List *( *ReparameterizeCustompathByChild) (PlannerInfo *root,
                                          Danh sách *Custom_private,
                                          Reloptinfo *Child_rel);

Cuộc gọi lại này được gọi trong khi chuyển đổi một đường tỷ lệ kèo bóng đá tối nay được tham số bởi cha mẹ hàng đầu của mối quan hệ con đã choChild_relđược tham số hóa bởi quan hệ con cái. Gọi lại được sử dụng để sắp xếp lại bất kỳ đường tỷ lệ kèo bóng đá tối nay nào hoặc dịch bất kỳ nút biểu thức nào được lưu trong đã chocustom_privateThành viên của ACustomPath. Cuộc gọi lại có thể sử dụngreparameterize_path_by_child, điều chỉnh_appendrel_attrshoặcđiều chỉnh_appendrel_attrs_multileveltheo yêu cầu.

Gửi hiệu tỷ lệ kèo bóng đá tối nay

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.