Nhà cung cấp quét kèo chấp bóng đá hôm 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;
Mặc dù hàm hook này có thể được sử dụng để kiểm tra, sửa đổi hoặc xóa các đường dẫn được tạo bởi hệ thống lõi, nhà cung cấp quét kèo chấp bóng đá hôm nay thường sẽ tự giới hạn để tạoCustomPath
Đối tượng và thêm chúng vàorel
sử dụngadd_path
. Nhà cung cấp quét kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay đường kèo chấp bóng đá hôm nay; Cờ Uint32; Danh sách *Custom_paths; Danh sách *Custom_Private; Phương thức CustomPathMethods *; CustomPath;
Path
phải được khởi tạo như đối với bất kỳ đường kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay này.cờ
là một chút mặt nạ, nên bao gồmCustompath_support_backward_scan
Nếu đường dẫn kèo chấp bóng đá hôm nay có thể hỗ trợ quét ngược vàCustompath_support_mark_restore
Nếu nó có thể hỗ trợ đánh dấu và khôi phục. Cả hai khả năng là kèo chấp bóng đá hôm nay chọn. Một kèo chấp bóng đá hôm nay chọnCustom_paths
là danh sáchđường kèo chấp bóng đá hôm nay
Các nút được sử dụng bởi nút đường kèo chấp bóng đá hôm nay này; Chúng sẽ được chuyển thànhPlan
nút của người lập kế hoạch.Custom_Private
có thể được sử dụng để lưu trữ dữ liệu riêng tư của đường dẫn kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay sẽ hoạt động như được thiết kế.Phương pháp
Phải trỏ đến đối tượng (thường được phân bổ tĩnh) Thực hiện các phương thức đường dẫn kèo chấp bóng đá hôm nay cần thiết, được chi tiết hơn dưới đây.
Nhà cung cấp quét kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm 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.
Plan *( *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 kèo chấp bóng đá hôm 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 58.2Để biết thêm chi tiết.
13072_13266
Cuộc gọi lại này được gọi trong khi chuyển đổi một đường kèo chấp bóng đá hôm nay được tham số đượ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 kèo chấp bóng đá hôm nay nào hoặc dịch bất kỳ nút biểu thức nào được lưu trong đã chocustom_private
Thà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_attrs
hoặcđiều chỉnh_appendrel_attrs_multilevel
theo yêu cầu.
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 phù hợ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.