Re: *very* inefficient choice made by the planner (regarding - Mailing list pgsql-performance

From SZUCS Gábor
Subject Re: *very* inefficient choice made by the planner (regarding
Date
Msg-id 008501c4550f$87523a80$0403a8c0@fejleszt4
Whole thread Raw
In response to *very* inefficient choice made by the planner (regarding IN(...))  (Frank van Vugt <ftm.van.vugt@foxi.nl>)
Responses Re: *very* inefficient choice made by the planner (regarding
Re: *very* inefficient choice made by the planner (regarding
List pgsql-performance
Dear Gurus,

----- Original Message -----
From: "Stephan Szabo" <sszabo@megazone.bigpanda.com>
Sent: Thursday, June 10, 2004 7:14 PM


>
> On Thu, 10 Jun 2004, Stephan Szabo wrote:
>
> >
> > On Thu, 10 Jun 2004, Jean-Luc Lachance wrote:
> >
> > > I agree, but it should be a simple rewrite. No?
> >
> > It's NULLs inside the subselect that are the issue.
> >
> > select 1 in (select a from foo)
> > select exists ( select 1 from foo where a=1)

Just a dumb try :)

  SELECT (exists(select 1 from foo where a isnull) AND NULL)
       OR exists(select 1 from foo where a=1)

AFAIK this returns
* NULL if (NULL in foo.a) and (1 not in foo.a)
* (1 in foo.a) otherwise.

The weakness is the doubled exists clause. I'm sure it makes most cases at
least doubtful...

G.
%----------------------- cut here -----------------------%
\end


pgsql-performance by date:

Previous
From: Andrew McMillan
Date:
Subject: Re: Slow vacuum performance
Next
From: Gary Cowell
Date:
Subject: Major differences between oracle and postgres performance - what can I do ?