summaryrefslogtreecommitdiff
path: root/src/include/optimizer/prep.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-04-28 21:31:16 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-04-28 21:31:16 +0000
commitc59d8dd44d34ea617296b4a2d6e22fefc74593ed (patch)
tree786e89d2c217b9ed3628cfa09f61993101c48fd3 /src/include/optimizer/prep.h
parent636edd553daafeaab775d0f4054ca02fa5240ad0 (diff)
downloadpostgresql-c59d8dd44d34ea617296b4a2d6e22fefc74593ed.tar.gz
Improve pull_up_subqueries logic so that it doesn't insert unnecessary
PlaceHolderVar nodes in join quals appearing in or below the lowest outer join that could null the subquery being pulled up. This improves the planner's ability to recognize constant join quals, and probably helps with detection of common sort keys (equivalence classes) as well.
Diffstat (limited to 'src/include/optimizer/prep.h')
-rw-r--r--src/include/optimizer/prep.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h
index 569d415de4..58b8c92461 100644
--- a/src/include/optimizer/prep.h
+++ b/src/include/optimizer/prep.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.64 2009/01/01 17:24:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.65 2009/04/28 21:31:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,8 @@
extern void pull_up_sublinks(PlannerInfo *root);
extern void inline_set_returning_functions(PlannerInfo *root);
extern Node *pull_up_subqueries(PlannerInfo *root, Node *jtnode,
- bool below_outer_join, bool append_rel_member);
+ JoinExpr *lowest_outer_join,
+ AppendRelInfo *containing_appendrel);
extern void reduce_outer_joins(PlannerInfo *root);
extern Relids get_relids_in_jointree(Node *jtnode, bool include_joins);
extern Relids get_relids_for_join(PlannerInfo *root, int joinrelid);