aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/access/gin/ginget.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c
index 5d414c8a575..890afc46956 100644
--- a/src/backend/access/gin/ginget.c
+++ b/src/backend/access/gin/ginget.c
@@ -511,17 +511,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++)