diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index abd70b3..6b3f471 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -732,7 +732,8 @@ ExecHashIncreaseNumBatches(HashJoinTable hashtable) * group any more finely. We have to just gut it out and hope the server * has enough RAM. */ - if (nfreed == 0 || nfreed == ninmemory) + if ((nfreed >= 0.9 * (nfreed + ninmemory)) || + (nfreed <= 0.1 * (nfreed + ninmemory))) { hashtable->growEnabled = false; #ifdef HJDEBUG