diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index 3494d6b0b5..57d378a42f 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -540,17 +540,24 @@ startScan(IndexScanDesc scan) * supposition isn't true), that total result will not more than * minimal predictNumberResult. */ + bool reduce = true; for (i = 0; i < so->totalentries; i++) + { if (so->entries[i]->predictNumberResult <= so->totalentries * GinFuzzySearchLimit) - return; - - for (i = 0; i < so->totalentries; i++) - if (so->entries[i]->predictNumberResult > so->totalentries * GinFuzzySearchLimit) + { + reduce = false; + break; + } + } + if (reduce) + { + for (i = 0; i < so->totalentries; i++) { so->entries[i]->predictNumberResult /= so->totalentries; so->entries[i]->reduceResult = TRUE; } + } } for (i = 0; i < so->nkeys; i++)