Simplify initialization of incremental hash state

John Naylor <john.naylor@postgresql.org>

Commit: 9ed3ee5001b6a2d4cb0166eb8f12a457f30aaca4
Author: John Naylor <john.naylor@postgresql.org>
Date: 2024-02-06T07:39:36Z
Releases: 17.0
Simplify initialization of incremental hash state

The standalone functions fasthash{32,64} use length for two purposes:
how many bytes to hash, and how to perturb the internal seed.

Developers using the incremental interface may not know the length
ahead of time (e.g. for C strings). In this case, it's advised to
pass length to the finalizer, but initialization still needed some
length up front, in the form of a placeholder macro.

Separate the concerns by having the standalone functions perturb the
internal seed themselves from their own length parameter, allowing
to remove "len" from fasthash_init(), as well as the placeholder macro.

Discussion: https://postgr.es/m/CANWCAZbTUk2LOyhsFo33gjLyLAHZ7ucXCi5K9u%3D%2BPtnTShDKtw%40mail.gmail.com

Files

PathChange+/−
src/backend/catalog/namespace.c modified +1 −1
src/include/common/hashfn_unstable.h modified +8 −11

Discussion