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