1 /*------------------------------------------------------------------------- 2 * 3 * index_selfuncs.h 4 * Index cost estimation functions for standard index access methods. 5 * 6 * 7 * Note: this is split out of selfuncs.h mainly to avoid importing all of the 8 * planner's data structures into the non-planner parts of the index AMs. 9 * If you make it depend on anything besides access/amapi.h, that's likely 10 * a mistake. 11 * 12 * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group 13 * Portions Copyright (c) 1994, Regents of the University of California 14 * 15 * src/include/utils/index_selfuncs.h 16 * 17 *------------------------------------------------------------------------- 18 */ 19 #ifndef INDEX_SELFUNCS_H 20 #define INDEX_SELFUNCS_H 21 22 #include "access/amapi.h" 23 24 /* Functions in selfuncs.c */ 25 extern void brincostestimate(struct PlannerInfo *root, 26 struct IndexPath *path, 27 double loop_count, 28 Cost *indexStartupCost, 29 Cost *indexTotalCost, 30 Selectivity *indexSelectivity, 31 double *indexCorrelation, 32 double *indexPages); 33 extern void btcostestimate(struct PlannerInfo *root, 34 struct IndexPath *path, 35 double loop_count, 36 Cost *indexStartupCost, 37 Cost *indexTotalCost, 38 Selectivity *indexSelectivity, 39 double *indexCorrelation, 40 double *indexPages); 41 extern void hashcostestimate(struct PlannerInfo *root, 42 struct IndexPath *path, 43 double loop_count, 44 Cost *indexStartupCost, 45 Cost *indexTotalCost, 46 Selectivity *indexSelectivity, 47 double *indexCorrelation, 48 double *indexPages); 49 extern void gistcostestimate(struct PlannerInfo *root, 50 struct IndexPath *path, 51 double loop_count, 52 Cost *indexStartupCost, 53 Cost *indexTotalCost, 54 Selectivity *indexSelectivity, 55 double *indexCorrelation, 56 double *indexPages); 57 extern void spgcostestimate(struct PlannerInfo *root, 58 struct IndexPath *path, 59 double loop_count, 60 Cost *indexStartupCost, 61 Cost *indexTotalCost, 62 Selectivity *indexSelectivity, 63 double *indexCorrelation, 64 double *indexPages); 65 extern void gincostestimate(struct PlannerInfo *root, 66 struct IndexPath *path, 67 double loop_count, 68 Cost *indexStartupCost, 69 Cost *indexTotalCost, 70 Selectivity *indexSelectivity, 71 double *indexCorrelation, 72 double *indexPages); 73 74 #endif /* INDEX_SELFUNCS_H */ 75