Hi, hackers

If I understand correctly, we only need to check the specific bit 
to determine whether a hash element needs relocation:


diff --git a/src/backend/utils/hash/dynahash.c 
b/src/backend/utils/hash/dynahash.c
index 1ad155d446e..32fbae71995 100644
--- a/src/backend/utils/hash/dynahash.c
+++ b/src/backend/utils/hash/dynahash.c
@@ -1626,7 +1626,7 @@ expand_table(HTAB *hashp)
                 currElement = 
nextElement)
        {
                nextElement = 
currElement->link;
-               if ((long) 
calc_bucket(hctl, currElement->hashvalue) == old_bucket)
+               if 
(!(currElement->hashvalue & (hctl->low_mask + 1)))
                {
                      
  *oldlink = currElement;
                      
  oldlink = &currElement->link;



--
Regards,
ChangAo Chen

Attachment: v1-0001-Small-optimization-with-expanding-dynamic-hash-ta.patch
Description: Binary data

Reply via email to