diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2013-03-21 19:43:59 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2013-03-21 19:44:32 -0400 |
commit | 9cbc4b80ddc10b36c64514104caa69747c386dcf (patch) | |
tree | 56ff643469573d7f83c9bbc89ab44b797ab988cd /contrib/postgres_fdw/postgres_fdw.h | |
parent | 08af1a0a2ae8fbbd9949d9fa0f7583f6c09cf4ec (diff) | |
download | postgresql-9cbc4b80ddc10b36c64514104caa69747c386dcf.tar.gz postgresql-9cbc4b80ddc10b36c64514104caa69747c386dcf.zip |
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.
Diffstat (limited to 'contrib/postgres_fdw/postgres_fdw.h')
-rw-r--r-- | contrib/postgres_fdw/postgres_fdw.h | 11 |
1 files changed, 7 insertions, 4 deletions
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); |