From a96ec013abdd79f2e061fddaa49291f2f16f5e65 Mon Sep 17 00:00:00 2001 From: John Naylor Date: Sat, 9 Dec 2023 18:05:27 +0700 Subject: [PATCH v6 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