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了