v1-0005-Fix-various-hash-function-uses.patch

text/plain

Filename: v1-0005-Fix-various-hash-function-uses.patch
Type: text/plain
Part: 4
Message: Datum as struct

Patch

Format: format-patch
Series: patch v1-0005
Subject: Fix various hash function uses
File+
contrib/sepgsql/uavc.c 2 2
src/backend/access/common/tupdesc.c 3 3
src/backend/storage/file/fileset.c 1 1
src/backend/utils/adt/multirangetypes.c 1 1
src/backend/utils/adt/rangetypes.c 1 1
src/backend/utils/cache/catcache.c 1 1
From dfd9e4b16e979ac52be682d8c093f883da8d7ba2 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Thu, 31 Jul 2025 15:18:02 +0200
Subject: [PATCH v1 5/6] Fix various hash function uses

These instances were using Datum-returning functions where a
lower-level function returning uint32 would be more appropriate.
---
 contrib/sepgsql/uavc.c                  | 4 ++--
 src/backend/access/common/tupdesc.c     | 6 +++---
 src/backend/storage/file/fileset.c      | 2 +-
 src/backend/utils/adt/multirangetypes.c | 2 +-
 src/backend/utils/adt/rangetypes.c      | 2 +-
 src/backend/utils/cache/catcache.c      | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/contrib/sepgsql/uavc.c b/contrib/sepgsql/uavc.c
index 65ea8e7946a..d9ccbc38bc5 100644
--- a/contrib/sepgsql/uavc.c
+++ b/contrib/sepgsql/uavc.c
@@ -66,8 +66,8 @@ static char *avc_unlabeled;		/* system 'unlabeled' label */
 static uint32
 sepgsql_avc_hash(const char *scontext, const char *tcontext, uint16 tclass)
 {
-	return hash_any((const unsigned char *) scontext, strlen(scontext))
-		^ hash_any((const unsigned char *) tcontext, strlen(tcontext))
+	return hash_bytes((const unsigned char *) scontext, strlen(scontext))
+		^ hash_bytes((const unsigned char *) tcontext, strlen(tcontext))
 		^ tclass;
 }
 
diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
index 020d00cd01c..be60005ae46 100644
--- a/src/backend/access/common/tupdesc.c
+++ b/src/backend/access/common/tupdesc.c
@@ -815,10 +815,10 @@ hashRowType(TupleDesc desc)
 	uint32		s;
 	int			i;
 
-	s = hash_combine(0, hash_uint32(desc->natts));
-	s = hash_combine(s, hash_uint32(desc->tdtypeid));
+	s = hash_combine(0, hash_bytes_uint32(desc->natts));
+	s = hash_combine(s, hash_bytes_uint32(desc->tdtypeid));
 	for (i = 0; i < desc->natts; ++i)
-		s = hash_combine(s, hash_uint32(TupleDescAttr(desc, i)->atttypid));
+		s = hash_combine(s, hash_bytes_uint32(TupleDescAttr(desc, i)->atttypid));
 
 	return s;
 }
diff --git a/src/backend/storage/file/fileset.c b/src/backend/storage/file/fileset.c
index 64141c7cb91..4d5ee353fd7 100644
--- a/src/backend/storage/file/fileset.c
+++ b/src/backend/storage/file/fileset.c
@@ -185,7 +185,7 @@ FileSetPath(char *path, FileSet *fileset, Oid tablespace)
 static Oid
 ChooseTablespace(const FileSet *fileset, const char *name)
 {
-	uint32		hash = hash_any((const unsigned char *) name, strlen(name));
+	uint32		hash = hash_bytes((const unsigned char *) name, strlen(name));
 
 	return fileset->tablespaces[hash % fileset->ntablespaces];
 }
diff --git a/src/backend/utils/adt/multirangetypes.c b/src/backend/utils/adt/multirangetypes.c
index 4c3db172e76..097f91d2346 100644
--- a/src/backend/utils/adt/multirangetypes.c
+++ b/src/backend/utils/adt/multirangetypes.c
@@ -2833,7 +2833,7 @@ hash_multirange(PG_FUNCTION_ARGS)
 			upper_hash = 0;
 
 		/* Merge hashes of flags and bounds */
-		range_hash = hash_uint32((uint32) flags);
+		range_hash = hash_bytes_uint32((uint32) flags);
 		range_hash ^= lower_hash;
 		range_hash = pg_rotate_left32(range_hash, 1);
 		range_hash ^= upper_hash;
diff --git a/src/backend/utils/adt/rangetypes.c b/src/backend/utils/adt/rangetypes.c
index f26dbfa4c97..15398c72ea0 100644
--- a/src/backend/utils/adt/rangetypes.c
+++ b/src/backend/utils/adt/rangetypes.c
@@ -1442,7 +1442,7 @@ hash_range(PG_FUNCTION_ARGS)
 		upper_hash = 0;
 
 	/* Merge hashes of flags and bounds */
-	result = hash_uint32((uint32) flags);
+	result = hash_bytes_uint32((uint32) flags);
 	result ^= lower_hash;
 	result = pg_rotate_left32(result, 1);
 	result ^= upper_hash;
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index d1b25214376..e2cd3feaf81 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -213,7 +213,7 @@ namehashfast(Datum datum)
 {
 	char	   *key = NameStr(*DatumGetName(datum));
 
-	return hash_any((unsigned char *) key, strlen(key));
+	return hash_bytes((unsigned char *) key, strlen(key));
 }
 
 static bool
-- 
2.50.1