Marinos Yannikos <mjy@geizhals.at> writes:
> Marinos Yannikos wrote:
>> (what exactly does ANALYZE look at for text columns? in our case, about
>> 7% of the rows match the index condition, so it seems that left-anchored
>> regexp/like matches are not evaluated using the gathered
>> most-common-value list at all)
> oops, I think I gave myself the answer there. Of course the
> most-common-value list will not help if all the values that match the
> "bad" index condition exist only once, but have a common prefix...
The costing is really done off the range condition ((e >= 'ean'::text)
AND (e < 'eao'::text) in your example). I wouldn't think it would have
such a hard time getting a good rowcount estimate for that. Maybe you
need to bump up the statistics target for that column?
regards, tom lane