0002-ADDENDUM-add-finalizer-to-guc-name-hash.patch.txt
text/plain
Filename: 0002-ADDENDUM-add-finalizer-to-guc-name-hash.patch.txt
Type: text/plain
Part: 0
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index b51d10dbc0..124b8fbe85 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1363,10 +1363,17 @@ guc_name_compare(const char *namea, const char *nameb)
static uint32
guc_name_hash(const char *name)
{
- const unsigned char *bytes = (const unsigned char *)name;
- int blen = strlen(name);
+ uint32 result = 0;
- return hash_bytes(bytes, blen);
+ while (*name)
+ {
+ char ch = *name++;
+
+ /* Merge into hash ... not very bright, but it needn't be */
+ result = pg_rotate_left32(result, 5);
+ result ^= (uint32) ch;
+ }
+ return murmurhash32(result);
}
/*