Mark shared buffer lookup table HASH_FIXED_SIZE
authorAndres Freund <andres@anarazel.de>
Thu, 18 Sep 2025 00:28:43 +0000 (20:28 -0400)
committerAndres Freund <andres@anarazel.de>
Thu, 18 Sep 2025 00:28:43 +0000 (20:28 -0400)
StrategyInitialize() calls InitBufTable() with maximum number of entries that
the buffer lookup table can ever have. Thus there should not be any need to
allocate more element after initialization. Hence mark the hash table as fixed
sized.

Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://postgr.es/m/CAExHW5v0jh3F_wj86yC=qBfWk0uiT94qy=Z41uzAHLHh0SerRA@mail.gmail.com

src/backend/storage/buffer/buf_table.c

index a50955d5286ca713dc0062a0cca373d42c65c97d..9d256559bab9dee752db858c1a6f20ff052ac965 100644 (file)
@@ -62,7 +62,7 @@ InitBufTable(int size)
    SharedBufHash = ShmemInitHash("Shared Buffer Lookup Table",
                                  size, size,
                                  &info,
-                                 HASH_ELEM | HASH_BLOBS | HASH_PARTITION);
+                                 HASH_ELEM | HASH_BLOBS | HASH_PARTITION | HASH_FIXED_SIZE);
 }
 
 /*