Re: unnesesary sorting after Merge Full Join

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Gregory Stark <stark(at)enterprisedb(dot)com>, "Alexey A(dot) Nalbat" <nalbat(at)price(dot)ru>, Decibel! <decibel(at)decibel(dot)org>, pgsql-general(at)postgresql(dot)org
Subject: Re: unnesesary sorting after Merge Full Join
Date: 2008-02-26 16:37:56
Message-ID: 3746.1204043876@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Simon Riggs <simon(at)2ndquadrant(dot)com> writes:
> On Tue, 2008-02-26 at 10:34 -0500, Tom Lane wrote:
> and add COALESCE(id2,id1) to it as well I think.
>> No, because those two expressions are not equivalent. (Hmm ... squint
>> ... but full merge join is pretty much symmetric, so it's not clear
>> why it should matter which side is left or right. Maybe COALESCE
>> isn't
>> exactly the right concept with which to describe the merged variable?)

> It is, in this case only, since when id2 is not null id2 == id1.

> So in this case its OK to express a symmetric relationship as a left
> handed function.

Well, it gives the right answer, but it fails to capture the property
that the expression is really symmetric. Which is something we need
to capture here so that the planner doesn't think that x mergejoin y
and y mergejoin x produce different output orderings. I think I had
done the COALESCE hack to avoid putting very much effort into FULL
JOIN, but it might be time to put in some more work, if we really
care about improving this.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2008-02-26 17:08:27 Re: how to auto GRANT custom ACL on a new table?
Previous Message Tom Lane 2008-02-26 15:50:44 Re: autovacuum not freeing up unused space on 8.3.0