From: | Richard Huxton <dev(at)archonet(dot)com> |
---|---|
To: | "Alexander M(dot) Pravking" <fduch(at)antar(dot)bryansk(dot)ru> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Expression transformation curiosity |
Date: | 2003-08-17 17:01:23 |
Message-ID: | 200308171801.23667.dev@archonet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Sunday 17 August 2003 16:39, Alexander M. Pravking wrote:
> On Sun, Aug 17, 2003 at 11:32:58AM +0100, Richard Huxton wrote:
> > Boiling the problem down, I've looked at a clause of the form:
> > a OR (b AND c)
> > which PG converts to:
> > (a OR b) AND (a OR c)
> > Is it an artefact of displaying the EXPLAIN, or is it actually processed
> > that way? You could see how testing "a" twice could be expensive in some
> > situations.
>
> Looks like it actually works this way.
> I had the same problem several weeks ago on 7.3.3 with 4 such OR's.
> The final filter became monsterous, and the query was very slow.
>
> I've simply rewritten the query using UNION, and it became much faster.
Doesn't seem to matter much in this case, although I tried it as a UNION just
to check the results were the same.
Thanks Alexander
--
Richard Huxton
Archonet Ltd
From | Date | Subject | |
---|---|---|---|
Next Message | Moonstruck | 2003-08-18 07:05:10 | Reverse pattern match. |
Previous Message | Alexander M. Pravking | 2003-08-17 15:39:38 | Re: Expression transformation curiosity |