pgsql: Adapt hashfn.c and hashutils.h for frontend use. - Mailing list pgsql-committers

From Robert Haas
Subject pgsql: Adapt hashfn.c and hashutils.h for frontend use.
Date
Msg-id E1j6CP2-0000UW-8B@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Adapt hashfn.c and hashutils.h for frontend use.

hash_any() and its various variants are defined to return Datum,
which is a backend-only concept, but the underlying functions
actually want to return uint32 and uint64, and only return Datum
because it's convenient for callers who are using them to
implement a hash function for some SQL datatype.

However, changing these functions to return uint32 and uint64
seems like it might lead to programming errors or back-patching
difficulties, both because they are widely used and because
failure to use UInt{32,64}GetDatum() might not provoke a
compilation error. Instead, rename the existing functions as
well as changing the return type, and add static inline wrappers
for those callers that need the previous behavior.

Although this commit adapts hashutils.h and hashfn.c so that they
can be compiled as frontend code, it does not actually do
anything that would cause them to be so compiled. That is left
for another commit.

Patch by me, reviewed by Suraj Kharage and Mark Dilger.

Discussion: http://postgr.es/m/CA+TgmoaRiG4TXND8QuM6JXFRkM_1wL2ZNhzaUKsuec9-4yrkgw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/a91e2fa94180f24dd68fb6c99136cda820e02089

Modified Files
--------------
src/backend/utils/hash/hashfn.c | 52 +++++++++++++++++++----------------------
src/include/utils/hashutils.h   | 36 ++++++++++++++++++++++++----
2 files changed, 55 insertions(+), 33 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: pgsql: Put all the prototypes for hashfn.c into the same header file.
Next
From: Peter Eisentraut
Date:
Subject: pgsql: Change client-side fsync_fname() to report errors fatally