From 9cbc4b80ddc10b36c64514104caa69747c386dcf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 21 Mar 2013 19:43:59 -0400 Subject: Redo postgres_fdw's planner code so it can handle parameterized paths. I wasn't going to ship this without having at least some example of how to do that. This version isn't terribly bright; in particular it won't consider any combinations of multiple join clauses. Given the cost of executing a remote EXPLAIN, I'm not sure we want to be very aggressive about doing that, anyway. In support of this, refactor generate_implied_equalities_for_indexcol so that it can be used to extract equivalence clauses that aren't necessarily tied to an index. --- contrib/postgres_fdw/postgres_fdw.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'contrib/postgres_fdw/postgres_fdw.h') diff --git a/contrib/postgres_fdw/postgres_fdw.h b/contrib/postgres_fdw/postgres_fdw.h index fc0e7b61fde..78a57ea0575 100644 --- a/contrib/postgres_fdw/postgres_fdw.h +++ b/contrib/postgres_fdw/postgres_fdw.h @@ -42,17 +42,20 @@ extern int ExtractConnectionOptions(List *defelems, extern void classifyConditions(PlannerInfo *root, RelOptInfo *baserel, List **remote_conds, - List **param_conds, - List **local_conds, - List **param_numbers); + List **local_conds); +extern bool is_foreign_expr(PlannerInfo *root, + RelOptInfo *baserel, + Expr *expr); extern void deparseSelectSql(StringInfo buf, PlannerInfo *root, RelOptInfo *baserel, Bitmapset *attrs_used); extern void appendWhereClause(StringInfo buf, PlannerInfo *root, + RelOptInfo *baserel, List *exprs, - bool is_first); + bool is_first, + List **params); extern void deparseInsertSql(StringInfo buf, PlannerInfo *root, Index rtindex, Relation rel, List *targetAttrs, List *returningList); -- cgit v1.2.3