I think in my case, It is safe to push the predicate down.  Can someone please, 
examine the behavior of other databases.If it behaves like postgres, I will 
assume there are some cases where it can lead to wrong result set.  I tried SQL 
server but my windows refuses it :-)
 
Regards


 


________________________________
 From: Tom Lane <t...@sss.pgh.pa.us>
To: salah jubeh <s_ju...@yahoo.com> 
Cc: Volodymyr Kostyrko <c.kw...@gmail.com>; pgsql 
<pgsql-general@postgresql.org> 
Sent: Thursday, January 26, 2012 5:47 PM
Subject: Re: [GENERAL] How to push predicate down 
 
salah jubeh <s_ju...@yahoo.com> writes:
> Sorry,  The scenario, that I posted was not correct. I have traced it and the 
> union was not the problem, As I said the query excusion plan is over 5000 
> line. I have created a scenario which similar to the scenario causes the 
> problem I have. 

> [ query uses EXCEPT not UNION ]

Hmm.  The code explicitly won't push conditions down through an EXCEPT:

* 3. If the subquery contains EXCEPT or EXCEPT ALL set ops we cannot push
* quals into it, because that could change the results.

I remember coming to the conclusion that this is safe for
UNION/INTERSECT but not EXCEPT, but right at the moment I'm not sure why
I thought that --- it seems like a qual that suppresses specific rows
should suppress all matching copies.

            regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to