summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-07-31 19:53:50 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-07-31 19:53:50 +0000
commit1be62b532b441aaff4b2d9c9dc028b96c4b7a8c7 (patch)
treef2a9ab9ff05c13f759bf58945166027c0f4bc030 /src/include
parent5bd7b8342685a7d6d5ab134b321f8e4ccfdeaa16 (diff)
Fix a bug in the original implementation of redundant-join-clause removal:
clauses in which one side or the other references both sides of the join cannot be removed as redundant, because that expression won't have been constrained below the join. Per report from Sergey Burladyan.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/optimizer/restrictinfo.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/include/optimizer/restrictinfo.h b/src/include/optimizer/restrictinfo.h
index db24c4989db..c9639a2c059 100644
--- a/src/include/optimizer/restrictinfo.h
+++ b/src/include/optimizer/restrictinfo.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.38 2006/10/04 00:30:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/restrictinfo.h,v 1.38.2.1 2007/07/31 19:53:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,10 +34,14 @@ extern void extract_actual_join_clauses(List *restrictinfo_list,
List **otherquals);
extern List *remove_redundant_join_clauses(PlannerInfo *root,
List *restrictinfo_list,
+ Relids outer_relids,
+ Relids inner_relids,
bool isouterjoin);
extern List *select_nonredundant_join_clauses(PlannerInfo *root,
List *restrictinfo_list,
List *reference_list,
+ Relids outer_relids,
+ Relids inner_relids,
bool isouterjoin);
#endif /* RESTRICTINFO_H */