aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-05-24 18:02:31 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-05-24 18:02:31 +0000
commit872c1497fca788a393d8027bed3bb387d11d051a (patch)
tree0a5852ae203ada6e6cde1d533ebc39749f6f3121
parentbc6444dc6a4b98d6d8b65dede360531ce2294ece (diff)
downloadpostgresql-872c1497fca788a393d8027bed3bb387d11d051a.tar.gz
postgresql-872c1497fca788a393d8027bed3bb387d11d051a.zip
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.
-rw-r--r--src/backend/optimizer/path/joinpath.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index b75cb6128d7..7ee1542ecdf 100644
--- a/src/backend/optimizer/path/joinpath.c
+++ b/src/backend/optimizer/path/joinpath.c
@@ -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;