Thread: pgsql: Fix cost_mergejoin's failure to adjust for rescanning of
pgsql: Fix cost_mergejoin's failure to adjust for rescanning of
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- 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. Modified Files: -------------- pgsql/src/backend/nodes: copyfuncs.c (r1.422 -> r1.423) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.422&r2=1.423) outfuncs.c (r1.351 -> r1.352) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.351&r2=1.352) pgsql/src/backend/optimizer/path: clausesel.c (r1.96 -> r1.97) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/clausesel.c?r1=1.96&r2=1.97) costsize.c (r1.203 -> r1.204) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c?r1=1.203&r2=1.204) equivclass.c (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/equivclass.c?r1=1.16&r2=1.17) orindxpath.c (r1.86 -> r1.87) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/orindxpath.c?r1=1.86&r2=1.87) pgsql/src/backend/optimizer/prep: prepunion.c (r1.164 -> r1.165) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepunion.c?r1=1.164&r2=1.165) pgsql/src/backend/optimizer/util: restrictinfo.c (r1.56 -> r1.57) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/restrictinfo.c?r1=1.56&r2=1.57) pgsql/src/include/nodes: relation.h (r1.167 -> r1.168) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h?r1=1.167&r2=1.168)