diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index 8a7adaf034a117b8893f63b771566e0bb78e960c..28c3486589c8596ee66a65ef14c9a0c302f29121 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -509,17 +509,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++)