From e55985d3be4aed47c703674c735c124ff0b3c03c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 30 Mar 2000 00:53:30 +0000 Subject: Tweak indexscan cost estimation: round estimated # of tuples visited up to next integer. Previously, if selectivity was small, we could compute very tiny scan cost on the basis of estimating that only 0.001 tuple would be fetched, which is silly. This naturally led to some rather silly plans... --- src/backend/utils/adt/selfuncs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/backend/utils/adt') diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index af7a449f697..0cd408ed78f 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -15,13 +15,15 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.61 2000/03/23 00:55:42 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.62 2000/03/30 00:53:30 tgl Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" +#include + #include "access/heapam.h" #include "catalog/catname.h" #include "catalog/pg_operator.h" @@ -900,10 +902,10 @@ genericcostestimate(Query *root, RelOptInfo *rel, lfirsti(rel->relids)); /* Estimate the number of index tuples that will be visited */ - numIndexTuples = *indexSelectivity * index->tuples; + numIndexTuples = ceil(*indexSelectivity * index->tuples); /* Estimate the number of index pages that will be retrieved */ - numIndexPages = *indexSelectivity * index->pages; + numIndexPages = ceil(*indexSelectivity * index->pages); /* * Compute the index access cost. -- cgit v1.2.3