[GENERAL] When can postgresql use a partial (NOT NULL) index? Seems to depend on size of IN clause (even with enable seqscan = off)

2010-08-03 Thread Timothy Garnett
Hi all, I'm debugging a performance issue that looks like it might actually be an issue/limitation/parameter/bug in the query planner, but since I couldn't find anything authoritative on when exactly postgresql is able to use partial not null indexes I'm not sure that that's the case and I was

Re: [GENERAL] When can postgresql use a partial (NOT NULL) index? Seems to depend on size of IN clause (even with enable seqscan = off)

2010-08-03 Thread Tom Lane
Timothy Garnett tgarn...@panjiva.com writes: ... My first thought was that there was a problem with the statistics/estimation in the planner, but using set enable seq_scan=off; still does not use the index when there's over 100 bid's in the IN clause. Breaking the IN clause into 2 100 element

Re: [GENERAL] When can postgresql use a partial (NOT NULL) index? Seems to depend on size of IN clause (even with enable seqscan = off)

2010-08-03 Thread Scott Marlowe
On Tue, Aug 3, 2010 at 2:03 PM, Timothy Garnett tgarn...@panjiva.com wrote: Hi all, I'm debugging a performance issue that looks like it might actually be an issue/limitation/parameter/bug in the query planner, but since I couldn't find anything authoritative on when exactly postgresql is

Re: [GENERAL] When can postgresql use a partial (NOT NULL) index? Seems to depend on size of IN clause (even with enable seqscan = off)

2010-08-03 Thread Timothy Garnett
Adding the is not null clause does allow the query to use the index again (and is a much cleaner workaround in that I don't have to change the indexes or rely on any magic number for splitting the in clauses). Also makes sense since it more exactly matches the partial indexing condition. Thanks