diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-11-23 03:57:31 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-11-23 03:57:31 +0000 |
| commit | 48437f5c3af2c6a64ef468a3cdd15f674b7e219f (patch) | |
| tree | 405247bb5e6162c65cd30ce04bb5c083319c63af /src/backend/optimizer/path/joinpath.c | |
| parent | 5479c11bfa3be21afca44ef59e2e14204bc0a142 (diff) | |
| download | postgresql-48437f5c3af2c6a64ef468a3cdd15f674b7e219f.tar.gz | |
Ensure that mergejoin plan will be considered for FULL OUTER JOIN even
if enable_mergejoin = OFF. Must do this, because we have no other
implementation method for full joins.
Diffstat (limited to 'src/backend/optimizer/path/joinpath.c')
| -rw-r--r-- | src/backend/optimizer/path/joinpath.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index 0dbfef8b2f..6096f8c3f2 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.58 2000/10/05 19:48:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.59 2000/11/23 03:57:31 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -75,9 +75,12 @@ add_paths_to_joinrel(Query *root, List *mergeclause_list = NIL; /* - * Find potential mergejoin clauses. + * Find potential mergejoin clauses. We can skip this if we are not + * interested in doing a mergejoin. However, mergejoin is currently + * our only way of implementing full outer joins, so override + * mergejoin disable if it's a full join. */ - if (enable_mergejoin) + if (enable_mergejoin || jointype == JOIN_FULL) mergeclause_list = select_mergejoin_clauses(joinrel, outerrel, innerrel, |
