Commit 872c1497 authored by Tom Lane's avatar Tom Lane

Previous fix for "x FULL JOIN y ON true" failed to handle the case

where there was also a WHERE-clause restriction that applied to the
join.  The check on restrictlist == NIL is really unnecessary anyway,
because select_mergejoin_clauses already checked for and complained
about any unmergejoinable join clauses.  So just take it out.
parent bc6444dc
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.93 2005/04/19 22:35:15 tgl Exp $
* $PostgreSQL: pgsql/src/backend/optimizer/path/joinpath.c,v 1.94 2005/05/24 18:02:31 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -499,15 +499,10 @@ match_unsorted_outer(Query *root,
* nestloop path, but since mergejoin is our only join type that
* supports FULL JOIN, it's necessary to generate a clauseless
* mergejoin path instead.
*
* Unfortunately this can't easily be extended to handle the case
* where there are joinclauses but none of them use mergejoinable
* operators; nodeMergejoin.c can only do a full join correctly if
* all the joinclauses are mergeclauses.
*/
if (mergeclauses == NIL)
{
if (jointype == JOIN_FULL && restrictlist == NIL)
if (jointype == JOIN_FULL)
/* okay to try for mergejoin */ ;
else
continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment