Re: [PERFORM] Big IN() clauses etc : feature proposal - Mailing list pgsql-hackers

From PFC
Subject Re: [PERFORM] Big IN() clauses etc : feature proposal
Date
Msg-id op.s9amckxhcigqcu@apollo13
Whole thread Raw
In response to Re: [PERFORM] Big IN() clauses etc : feature proposal  ("Dawid Kuroczko" <qnex42@gmail.com>)
Responses Re: [PERFORM] Big IN() clauses etc : feature proposal  (Markus Schaber <schabi@logix-tt.com>)
List pgsql-hackers

>> >       SELECT * FROM somewhere WHERE id IN (SELECT id FROM result)

> Well, you can either
>   SELECT * FROM somewhere JOIN (SELECT id FROM result GROUP BY id) AS
> a USING (id);

    It's the same thing (and postgres knows it)

> You might want to use PL to store values, say PLperl, or even C, say:

    I tried.
    The problem is that you need a set-returning function to retrieve the
values. SRFs don't have rowcount estimates, so the plans suck.

> Should work faster than a in-application solution :)

    Should, but don't, because of what I said above...

    With the version in CVS tip, supprting a fast =ANY( array ), this should
be doable, though.

pgsql-hackers by date:

Previous
From: "Dawid Kuroczko"
Date:
Subject: Re: [PERFORM] Big IN() clauses etc : feature proposal
Next
From: Tom Lane
Date:
Subject: Re: Number of dimensions of an array parameter