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

Reply via email to