On Tue, Apr 21, 2009 at 11:38 AM, <vacuum@quantentunnel.de> wrote:
> I've queries returning tupels of A, with a (sub-)selected constant-expression that indicates whether a referenced
tupelexists in B or not. For this issue the EXISTS clause is used.
>
> In past (8.3) the planner resolves this into index-scans using existing foreign-key indices -> fast query (1.5
secondsfor comparison). Now (in 8.4) the planner wants "semi-joins". Index-scans are not longer used and my query needs
600seconds to return.
That worries me a bit for one of our applications too. We use EXISTS
in several places to trick the planner when the statistics are way off
(cross columns/cross tables) and I'm not sure making EXISTS more
clever will help us.
--
Guillaume