From 96833e2b8f044a2a0e236a3a69ca5c59dd1fd35e Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Wed, 18 Aug 2021 15:13:57 +0300 Subject: [PATCH] Use HASH_STRINGS explicitly in hash functions Postgres expects to set the HASH_STRINGS explicitly in case of the default behaivor for string hash function. Postgres Commit b3817f5f774663d55931dd4fab9c5a94a15ae7ab --- src/backend/columnar/write_state_management.c | 2 +- src/backend/distributed/utils/listutils.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/backend/columnar/write_state_management.c b/src/backend/columnar/write_state_management.c index 69860ad57..4d815c2a0 100644 --- a/src/backend/columnar/write_state_management.c +++ b/src/backend/columnar/write_state_management.c @@ -132,7 +132,7 @@ columnar_init_write_state(Relation relation, TupleDesc tupdesc, "Column Store Write State Management Context", ALLOCSET_DEFAULT_SIZES); HASHCTL info; - uint32 hashFlags = (HASH_ELEM | HASH_CONTEXT); + uint32 hashFlags = (HASH_ELEM | HASH_STRINGS | HASH_CONTEXT); memset(&info, 0, sizeof(info)); info.keysize = sizeof(Oid); info.entrysize = sizeof(WriteStateMapEntry); diff --git a/src/backend/distributed/utils/listutils.c b/src/backend/distributed/utils/listutils.c index c58be3e46..836a4bff6 100644 --- a/src/backend/distributed/utils/listutils.c +++ b/src/backend/distributed/utils/listutils.c @@ -135,7 +135,13 @@ ListToHashSet(List *itemList, Size keySize, bool isStringList) info.entrysize = keySize; info.hcxt = CurrentMemoryContext; - if (!isStringList) + if (isStringList) + { +#if PG_VERSION_NUM >= PG_VERSION_14 + flags |= HASH_STRINGS; +#endif + } + else { flags |= HASH_BLOBS; }