On Tue, Feb 12, 2019 at 11:58 AM Jeff Janes <jeff.ja...@gmail.com> wrote:

>
> On Tue, Feb 12, 2019 at 10:42 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
>
>>
>> Hm.  blcostestimate is using the default cost calculation, except for
>>
>>         /* We have to visit all index tuples anyway */
>>         costs.numIndexTuples = index->tuples;
>>
>> which essentially tells genericcostestimate to assume that every index
>> tuple will be visited.  This obviously is going to increase the cost
>> estimate; maybe there's something wrong with that?
>>
>
> I assumed (without investigating yet) that genericcostestimate is applying
> a cpu_operator_cost (or a few of them) on each index tuple, while the
> premise of a bloom index is that you do very fast bit-fiddling, not more
> expense SQL operators, for each tuple and then do the recheck only on what
> survives to the table tuple part.
>

In order for bloom (or any other users of CREATE ACCESS METHOD, if there
are any) to have a fighting chance to do better, I think many of selfuncs.c
currently private functions would have to be declared in some header file,
perhaps utils/selfuncs.h.  But that then requires a cascade of other
inclusions.  Perhaps that is why it was not done.

Cheers,

Jeff

>

Reply via email to