Re: Planning large IN lists - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Planning large IN lists
Date
Msg-id 19001.1178823208@sss.pgh.pa.us
Whole thread Raw
In response to Planning large IN lists  (Neil Conway <neilc@samurai.com>)
Responses Re: Planning large IN lists  ("Dann Corbit" <DCorbit@connx.com>)
Re: Planning large IN lists  (Bruce Momjian <bruce@momjian.us>)
Re: Planning large IN lists  ("Atul Deopujari" <atul.deopujari@enterprisedb.com>)
Re: Planning large IN lists  ("Atul Deopujari" <atuld@enterprisedb.com>)
List pgsql-hackers
Neil Conway <neilc@samurai.com> writes:
> When planning queries with a large IN expression in the WHERE clause,
> the planner transforms the IN list into a scalar array expression. In
> clause_selectivity(), we estimate the selectivity of the ScalarArrayExpr
> by calling scalararraysel(), which in turn estimates the selectivity of
> *each* array element in order to determine the selectivity of the array
> expression as a whole.

> This is quite inefficient when the IN list is large.

That's the least of the problems.  We really ought to convert such cases
into an IN (VALUES(...)) type of query, since often repeated indexscans
aren't the best implementation.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Lukas Kahwe Smith
Date:
Subject: Re: Planning large IN lists
Next
From: "Dann Corbit"
Date:
Subject: Re: Planning large IN lists