Re: full outer join performance

From: Ben <bench(at)silentmedia(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: full outer join performance
Date: 2005-09-13 19:38:41
Message-ID: 43272AC1.5030109@silentmedia.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Tom Lane wrote:

>I think the problem was that he had
>
> select ... from a, b full join c on ... where ...
>
>where table b is big and you only need a few rows from it, so it really
>needs to be joined last, but the above forced doing it first. It wasn't
>clear to me why he wanted the full join at all (in fact, you could see
>from the plan that the planner had been able to reduce it to a left join
>because there were WHERE clauses that'd discard one set of null-extended
>rows anyway). Without knowing that, it's hard to say whether there's
>another way to get what he wants.
>
>
>
Without the outer join, the output was missing the joined rows from a
and b when there was no matching row in c. (Tables a and c both
referenced b.)

I suppose I could have used a left join instead of a full join, but
either way the results were much slower than an inner join, and I was
able to redo some other logic to let an inner join work just fine.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2005-09-13 19:38:46 Re: Using COPY command when input file contain backslashes?
Previous Message Ben 2005-09-13 19:15:21 oracle's first_value function for postgres?