aboutsummaryrefslogtreecommitdiff
path: root/contrib/postgres_fdw/postgres_fdw.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2013-03-21 19:43:59 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2013-03-21 19:44:32 -0400
commit9cbc4b80ddc10b36c64514104caa69747c386dcf (patch)
tree56ff643469573d7f83c9bbc89ab44b797ab988cd /contrib/postgres_fdw/postgres_fdw.h
parent08af1a0a2ae8fbbd9949d9fa0f7583f6c09cf4ec (diff)
downloadpostgresql-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.h11
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);