That solved it. Thanks! Michael ----- Original Message ---- From: Tom Lane <tgl@xxxxxxxxxxxxx> To: Michael Fork <mfork00@xxxxxxxxx> Cc: pgsql-general@xxxxxxxxxxxxxx Sent: Tue, December 29, 2009 11:19:42 PM Subject: Re: Planner Row Estimate with Function Michael Fork <mfork00@xxxxxxxxx> writes: >> Also, what happened to the type='CREDIT' condition in your query? Is >> that a partial index? > Yes, this is partial index. I should have included the index definition earlier: Ah. The optimizer is ignoring the index stats on the grounds that they are not representative of the whole table. I'm not entirely sure offhand whether it would be safe to use them anyway if the index predicate is known to match the query --- it seems a bit risky but on the other hand it'd probably be better than having no stats at all. What you can do to get a better estimate is to create a non-partial index on parsecardidfromreferencecode(reference_code). It's fairly likely that if you do that, maintaining the partial index as well is not worth your time; but that's a decision you'd have to make. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general