| From: | Sam Mason <sam(at)samason(dot)me(dot)uk> |
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Query optimization problem |
| Date: | 2010-07-21 13:40:47 |
| Message-ID: | 20100721134047.GE7584@samason.me.uk |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Jul 20, 2010 at 09:57:06AM +0400, Zotov wrote:
> SELECT d1.ID, d2.ID
> FROM DocPrimary d1
> JOIN DocPrimary d2 ON d2.BasedOn=d1.ID
> WHERE (d1.ID=234409763) or (d2.ID=234409763)
You could try rewriting it to:
SELECT d1.ID, d2.ID
FROM DocPrimary d1
JOIN DocPrimary d2 ON d2.BasedOn=d1.ID
WHERE d1.ID=234409763
UNION
SELECT d1.ID, d2.ID
FROM DocPrimary d1
JOIN DocPrimary d2 ON d2.BasedOn=d1.ID
WHERE d2.ID=234409763
This should have the same semantics as the original query. I don't
believe PG knows how to do a rewrite like this at the moment.
--
Sam http://samason.me.uk/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Yeb Havinga | 2010-07-21 14:11:07 | Preliminary review of Synchronous Replication patches |
| Previous Message | Pavel Stehule | 2010-07-21 13:39:02 | Re: patch: to_string, to_array functions |