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-2019, 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 */
25extern 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);
33extern 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);
41extern 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);
49extern 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);
57extern 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);
65extern 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