Simplify initialization of incremental hash state
authorJohn Naylor <john.naylor@postgresql.org>
Sun, 21 Jan 2024 12:19:14 +0000 (19:19 +0700)
committerJohn Naylor <john.naylor@postgresql.org>
Tue, 6 Feb 2024 07:39:36 +0000 (14:39 +0700)
commit9ed3ee5001b6a2d4cb0166eb8f12a457f30aaca4
tree67ea542a24cea71cad13cc64ca36bd425d7685f7
parent1f61680327c962d5bafdbf6a04ad9bb0f7232f92
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
src/backend/catalog/namespace.c
src/include/common/hashfn_unstable.h