Early in August someone asked me a question: on a queue table where a few thousand pending rows sit among millions of completed ones, should they use a partial index or a plain one?

I said yes, this is the textbook case for a partial index, and listed six points. It will be small. It fits in cache. It is cheap to update. Put the ORDER BY column in it. If you ask with a bound parameter the planner may not pick it. Watch out for churn and bloat.

I had measured none of them.

So I measured all of them. Four of the six turned out right. What I want to write about is the two that didn't — because the interesting part of testing your own advice is never the confirmation. It's finding the condition under which a true sentence flips.

TL;DR