diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c index dc7ae64a5a9..f6fc6271a2e 100644 --- a/src/backend/utils/hash/dynahash.c +++ b/src/backend/utils/hash/dynahash.c @@ -931,7 +931,7 @@ hash_search_with_hash_value(HTAB *hashp, * table is the subject of any active hash_seq_search scans. */ if (hctl->freeList[0].nentries > (int64) hctl->max_bucket && - !IS_PARTITIONED(hctl) && !hashp->frozen && + !hctl->isfixed && !IS_PARTITIONED(hctl) && !hashp->frozen && !has_seq_scans(hashp)) (void) expand_table(hashp); } @@ -1494,6 +1494,7 @@ expand_table(HTAB *hashp) HASHBUCKET currElement, nextElement; + Assert(!hctl->isfixed); Assert(!IS_PARTITIONED(hctl)); #ifdef HASH_STATISTICS @@ -1583,6 +1584,7 @@ dir_realloc(HTAB *hashp) int64 old_dirsize; int64 new_dirsize; + Assert(!hashp->hctl->isfixed); if (hashp->hctl->max_dsize != NO_MAX_DSIZE) return false; @@ -1618,6 +1620,8 @@ seg_alloc(HTAB *hashp) { HASHSEGMENT segp; + Assert(!hashp->hctl->isfixed); + segp = (HASHSEGMENT) hashp->alloc(sizeof(HASHBUCKET) * HASH_SEGSIZE, hashp->alloc_arg); if (!segp)