cost_index() - Mailing list pgsql-hackers

From Teodor Sigaev
Subject cost_index()
Date
Msg-id 544E5C9E.6010806@sigaev.ru
Whole thread Raw
Responses Re: cost_index()
List pgsql-hackers
Hi!

Some fragment of code (src/backend/optimizer/path/costsize.c, lineno ~400):        /*         * Normal case: apply the
Mackertand Lohman formula, and then         * interpolate between that and the correlation-derived result.         */
    pages_fetched = index_pages_fetched(tuples_fetched,                                            baserel->pages,
                                     (double) index->pages,                                            root);        if
(indexonly)           pages_fetched = ceil(pages_fetched * (1.0 - baserel->allvisfrac));
 

As I understand the code, index_pages_fetched() returns summary of page's read 
for index and heap together. But on next line this recalculates with "all 
visible fraction" of heap. After recent vacuum it could be 1.0 and then 
pages_fetches will be zero. It seems to me obviously wrong, because it's for 
index only scan it could be true only for heap, not for index pages.

Am I wrong or miss something?



-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 



pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: Review of GetUserId() Usage
Next
From: Tom Lane
Date:
Subject: Re: cost_index()