postgresql/src/include/optimizer
Tom Lane eb22950510 Fix PlaceHolderVar mechanism's interaction with outer joins.
The point of a PlaceHolderVar is to allow a non-strict expression to be
evaluated below an outer join, after which its value bubbles up like a Var
and can be forced to NULL when the outer join's semantics require that.
However, there was a serious design oversight in that, namely that we
didn't ensure that there was actually a correct place in the plan tree
to evaluate the placeholder :-(.  It may be necessary to delay evaluation
of an outer join to ensure that a placeholder that should be evaluated
below the join can be evaluated there.  Per recent bug report from Kirill
Simonov.

Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.
2010-09-28 14:19:00 -04:00
..
clauses.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
cost.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_copy.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_gene.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_misc.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_mutation.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_pool.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_random.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_recombination.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
geqo_selection.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
joininfo.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
pathnode.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
paths.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
placeholder.h Fix PlaceHolderVar mechanism's interaction with outer joins. 2010-09-28 14:19:00 -04:00
plancat.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
planmain.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
planner.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
predtest.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
prep.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
restrictinfo.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
subselect.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
tlist.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
var.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00