From ca3030cc73310c728ef973b31f90ba99f0ae1745 Mon Sep 17 00:00:00 2001
From: John Naylor <john.naylor@postgresql.org>
Date: Sat, 9 Dec 2023 18:05:27 +0700
Subject: [PATCH v7 12/13] Use chunk interface for guc_name_hash

---
 src/backend/utils/misc/guc.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 46591172fd..507d35718f 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1351,16 +1351,19 @@ guc_name_hash(const char *name)
 {
 	fasthash_state hs;
 
-	fasthash_init(&hs, 0, 0);
+	fasthash_init(&hs, 0, 0, true);
 
 	while (*name)
 	{
-		unsigned char		ch = *name++;
+		int chunk_len;
 
-		/* quick and dirty casefolding suitable for hashing */
-		ch |= 0x20;
+		for (chunk_len = 0;
+			chunk_len < FH_SIZEOF_ACCUM && name[chunk_len] != '\0';
+			chunk_len++)
+			;
 
-		fasthash_accum_byte(&hs, ch);
+		fasthash_accum(&hs, (const unsigned char *) name, chunk_len);
+		name += chunk_len;
 	}
 	return fasthash_final32(&hs);
 }
-- 
2.43.0

