aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/restrictinfo.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-02-06 23:43:24 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-02-06 23:43:24 +0000
commitc473d923515e03fe5fd43c2ca15d52363a93f488 (patch)
treeca1de3f8f20beb73fbd244f9f24e0e1fd7a3ca22 /src/backend/optimizer/util/restrictinfo.c
parentc87c31f10bfd77234b62175f03b9ae8a6f961411 (diff)
downloadpostgresql-c473d923515e03fe5fd43c2ca15d52363a93f488.tar.gz
postgresql-c473d923515e03fe5fd43c2ca15d52363a93f488.zip
Fix cost_mergejoin's failure to adjust for rescanning of non-unique merge join
keys when considering a semi or anti join. This requires estimating the selectivity of the merge qual as though it were a regular inner join condition. To allow caching both that and the real outer-join-aware selectivity, split RestrictInfo.this_selec into two fields. This fixes one of the problems reported by Kevin Grittner.
Diffstat (limited to 'src/backend/optimizer/util/restrictinfo.c')
-rw-r--r--src/backend/optimizer/util/restrictinfo.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c
index ddf7daf1ffd..22e2aeb493e 100644
--- a/src/backend/optimizer/util/restrictinfo.c
+++ b/src/backend/optimizer/util/restrictinfo.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.56 2009/01/01 17:23:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.57 2009/02/06 23:43:23 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -338,7 +338,8 @@ make_restrictinfo_internal(Expr *clause,
restrictinfo->parent_ec = NULL;
restrictinfo->eval_cost.startup = -1;
- restrictinfo->this_selec = -1;
+ restrictinfo->norm_selec = -1;
+ restrictinfo->outer_selec = -1;
restrictinfo->mergeopfamilies = NIL;