9.5主要是2个方法有变动:
create_foreignscan_path
extern ForeignPath *create_foreignscan_path(PlannerInfo *root, RelOptInfo *rel, double rows, Cost startup_cost, Cost total_cost, List *pathkeys, Relids required_outer, Path *fdw_outerpath, List *fdw_private);
9.4比9.5少了个Path *fdw_outerpath
extern ForeignPath *create_foreignscan_path(PlannerInfo *root, RelOptInfo *rel, double rows, Cost startup_cost, Cost total_cost, List *pathkeys, Relids required_outer, List *fdw_private);
make_foreignscan
这个函数在9.5中添加了3个参数:
extern ForeignScan *make_foreignscan(List *qptlist, List *qpqual, Index scanrelid, List *fdw_exprs, List *fdw_private, List *fdw_scan_tlist, List *fdw_recheck_quals, Plan *outer_plan);
9.4中的make_foreignscan
extern ForeignScan *make_foreignscan(List *qptlist, List *qpqual, Index scanrelid, List *fdw_exprs, List *fdw_private);
在接口fdwroutine->GetForeignPlan中需要添加一个Plan *outer_plan
这样就能快乐的在9.5上面玩耍fdw了