Age Owner TLA Line data Source code
1 : /*-------------------------------------------------------------------------
2 : *
3 : * blcost.c
4 : * Cost estimate function for bloom indexes.
5 : *
6 : * Copyright (c) 2016-2023, 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
2564 teodor 23 CBC 406 : blcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
24 : Cost *indexStartupCost, Cost *indexTotalCost,
25 : Selectivity *indexSelectivity, double *indexCorrelation,
26 : double *indexPages)
27 : {
28 406 : IndexOptInfo *index = path->indexinfo;
267 peter 29 GNC 406 : GenericCosts costs = {0};
2564 teodor 30 ECB :
31 : /* We have to visit all index tuples anyway */
2564 teodor 32 GIC 406 : costs.numIndexTuples = index->tuples;
2564 teodor 33 ECB :
34 : /* Use generic estimate */
1514 tgl 35 CBC 406 : genericcostestimate(root, path, loop_count, &costs);
2564 teodor 36 ECB :
2564 teodor 37 CBC 406 : *indexStartupCost = costs.indexStartupCost;
38 406 : *indexTotalCost = costs.indexTotalCost;
39 406 : *indexSelectivity = costs.indexSelectivity;
40 406 : *indexCorrelation = costs.indexCorrelation;
2244 rhaas 41 GIC 406 : *indexPages = costs.numIndexPages;
2564 teodor 42 406 : }
|