PostgreSQL Source Code  git master
blcost.c
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * blcost.c
4  * Cost estimate function for bloom indexes.
5  *
6  * Copyright (c) 2016-2024, PostgreSQL Global Development Group
7  *
8  * IDENTIFICATION
9  * contrib/bloom/blcost.c
10  *
11  *-------------------------------------------------------------------------
12  */
13 #include "postgres.h"
14 
15 #include "bloom.h"
16 #include "fmgr.h"
17 #include "utils/selfuncs.h"
18 
19 /*
20  * Estimate cost of bloom index scan.
21  */
22 void
23 blcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
24  Cost *indexStartupCost, Cost *indexTotalCost,
25  Selectivity *indexSelectivity, double *indexCorrelation,
26  double *indexPages)
27 {
28  IndexOptInfo *index = path->indexinfo;
29  GenericCosts costs = {0};
30 
31  /* We have to visit all index tuples anyway */
32  costs.numIndexTuples = index->tuples;
33 
34  /* Use generic estimate */
35  genericcostestimate(root, path, loop_count, &costs);
36 
37  *indexStartupCost = costs.indexStartupCost;
38  *indexTotalCost = costs.indexTotalCost;
39  *indexSelectivity = costs.indexSelectivity;
40  *indexCorrelation = costs.indexCorrelation;
41  *indexPages = costs.numIndexPages;
42 }
void blcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, Cost *indexStartupCost, Cost *indexTotalCost, Selectivity *indexSelectivity, double *indexCorrelation, double *indexPages)
Definition: blcost.c:23
double Cost
Definition: nodes.h:251
double Selectivity
Definition: nodes.h:250
tree ctl root
Definition: radixtree.h:1884
void genericcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, GenericCosts *costs)
Definition: selfuncs.c:6544
Selectivity indexSelectivity
Definition: selfuncs.h:127
Cost indexStartupCost
Definition: selfuncs.h:125
double indexCorrelation
Definition: selfuncs.h:128
Cost indexTotalCost
Definition: selfuncs.h:126
double numIndexPages
Definition: selfuncs.h:131
double numIndexTuples
Definition: selfuncs.h:132
IndexOptInfo * indexinfo
Definition: pathnodes.h:1699
Definition: type.h:95