arthernan wrote: > OidFunctionCall7 is called from costsize.c, in function void cost_index. From > the comments, I understand that there is an indirection mechanism here to > allow for different index access methods. Looking at fmgr.h where it is > declared is not clear to me where I would ultimately find the code. > > Any pointers will be greatly appreciated
The code you're really looking for is the amcostestimate function of the AM that the index uses. So if it's a btree you want btcostestimate, for instance. You can see the AM definitions in the pg_am system catalog and src/include/catalog/pg_am.h. > /* > * Call index-access-method-specific code to estimate the processing > cost > * for scanning the index, as well as the selectivity of the index (ie, > * the fraction of main-table tuples we will have to retrieve) and its > * correlation to the main-table tuple order. > */ > OidFunctionCall7(index->amcostestimate, > PointerGetDatum(root), > PointerGetDatum(path), > Float8GetDatum(loop_count), > PointerGetDatum(&indexStartupCost), > PointerGetDatum(&indexTotalCost), > PointerGetDatum(&indexSelectivity), > PointerGetDatum(&indexCorrelation)); -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers