Expression transformation curiosity - Mailing list pgsql-sql

From Richard Huxton
Subject Expression transformation curiosity
Date
Msg-id 200308171132.58073.dev@archonet.com
Whole thread Raw
Responses Re: Expression transformation curiosity  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Expression transformation curiosity  ("Alexander M. Pravking" <fduch@antar.bryansk.ru>)
List pgsql-sql
I just had a look at EXPLAIN ANALYSE output for an SQL function I'm trying to 
write. The WHERE clause wasn't too complex, but the explain output took up a 
dozen lines.

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)

Now these two are equivalent, but it would take me forever to demonstrate that 
with the full query. I'm happy the planner is going to get it right, but I'm 
confused as to why the transformation occurs.

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.

Oh, btw - 7.3.2 on this box, I'll be looking at 7.3.3/4 later today.

--  Richard Huxton Archonet Ltd


pgsql-sql by date:

Previous
From: Rod Taylor
Date:
Subject: Re: Do it exist?
Next
From: Tom Lane
Date:
Subject: Re: Expression transformation curiosity