diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-07-31 19:53:50 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-07-31 19:53:50 +0000 |
commit | 1be62b532b441aaff4b2d9c9dc028b96c4b7a8c7 (patch) | |
tree | f2a9ab9ff05c13f759bf58945166027c0f4bc030 /src/include | |
parent | 5bd7b8342685a7d6d5ab134b321f8e4ccfdeaa16 (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.h | 6 |
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 */ |