Re: Very large IN-clause is slow, but how to rewrite it?

From: Richard Jones <rich(at)annexia(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Joe Conway <mail(at)joeconway(dot)com>, pgsql-sql(at)postgresql(dot)org
Subject: Re: Very large IN-clause is slow, but how to rewrite it?
Date: 2007-02-25 19:39:05
Message-ID: 20070225193905.GD16669@furbychan.cocan.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Sun, Feb 25, 2007 at 01:34:44PM -0500, Tom Lane wrote:
> Joe Conway <mail(at)joeconway(dot)com> writes:
> > If 8.2, what about
> > ... WHERE foo IN (select x from (values (1$),(2$),...,(N$)) as t(x))
> > ?
>
> Well, the OP wasn't using 8.2 --- judging from the selected plan, it had
> to be 8.0 or older. But yeah, a values-list is an interesting
> alternative on 8.2. I think actually you don't need all that much extra
> notation; this seems to work:
>
> WHERE foo IN (VALUES ($1),($2),($3),...)

That's right, it is in fact PG 7.4.

I will try the values suggestion to see if that makes a difference.

Rich.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Phillip Smith 2007-02-25 22:17:34 Re: Insert based in a select
Previous Message Tom Lane 2007-02-25 18:34:44 Re: Very large IN-clause is slow, but how to rewrite it?