/*
* compute_bitmap_pages
+ * Estimate number of pages fetched from heap in a bitmap heap scan.
*
- * compute number of pages fetched from heap in bitmap heap scan.
+ * 'baserel' is the relation to be scanned
+ * 'bitmapqual' is a tree of IndexPaths, BitmapAndPaths, and BitmapOrPaths
+ * 'loop_count' is the number of repetitions of the indexscan to factor into
+ * estimates of caching behavior
+ *
+ * If cost_p isn't NULL, the indexTotalCost estimate is returned in *cost_p.
+ * If tuples_p isn't NULL, the tuples_fetched estimate is returned in *tuples_p.
*/
double
-compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel, Path *bitmapqual,
- int loop_count, Cost *cost, double *tuple)
+compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel,
+ Path *bitmapqual, double loop_count,
+ Cost *cost_p, double *tuples_p)
{
Cost indexTotalCost;
Selectivity indexSelectivity;
(lossy_pages / heap_pages) * baserel->tuples);
}
- if (cost)
- *cost = indexTotalCost;
- if (tuple)
- *tuple = tuples_fetched;
+ if (cost_p)
+ *cost_p = indexTotalCost;
+ if (tuples_p)
+ *tuples_p = tuples_fetched;
return pages_fetched;
}
extern void set_foreign_size_estimates(PlannerInfo *root, RelOptInfo *rel);
extern PathTarget *set_pathtarget_cost_width(PlannerInfo *root, PathTarget *target);
extern double compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel,
- Path *bitmapqual, int loop_count, Cost *cost, double *tuple);
+ Path *bitmapqual, double loop_count,
+ Cost *cost_p, double *tuples_p);
#endif /* COST_H */