Re: Change GUC hashtable to use simplehash?

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: John Naylor <johncnaylorls@gmail.com>, Junwang Zhao <zhjwpku@gmail.com>
Cc: jian he <jian.universality@gmail.com>, Jeff Davis <pgsql@j-davis.com>, Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, Gurjeet Singh <gurjeet@singh.im>, pgsql-hackers@postgresql.org
Date: 2024-01-17T14:54:48Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Silence warning in older versions of Valgrind

  2. Revert "Speed up tail processing when hashing aligned C strings, take two"

  3. Speed up tail processing when hashing aligned C strings, take two

  4. Teach fasthash_accum to use platform endianness for bytewise loads

  5. Add macro to disable address safety instrumentation

  6. Convert uses of hash_string_pointer to fasthash equivalent

  7. Speed up tail processing when hashing aligned C strings

  8. Add helper functions for dshash tables with string keys.

  9. Fix warnings in cpluspluscheck

  10. Further cosmetic review of hashfn_unstable.h

  11. Simplify initialization of incremental hash state

  12. Add optimized C string hashing

  13. Add inline incremental hash functions for in-memory use

  14. Make all Perl warnings fatal

On 17/01/2024 09:15, John Naylor wrote:
> /*
>  * hashfn_unstable.h
>  *
>  * Building blocks for creating fast inlineable hash functions. The
>  * unstable designation is in contrast to hashfn.h, which cannot break
>  * compatibility because hashes can be written to disk and so must produce
>  * the same hashes between versions.
>  *
>  * The functions in this file are not guaranteed to be stable between
>  * versions, and may differ by hardware platform.

These paragraphs sound a bit awkward. It kind of buries the lede, the 
"these functions are not guaranteed to be stable" part, to the bottom.

Maybe something like:

"
Building blocks for creating fast inlineable hash functions. The 
functions in this file are not guaranteed to be stable between versions, 
and may differ by hardware platform. Hence they must not be used in 
indexes or other on-disk structures. See hashfn.h if you need stability.
"

typo: licencse

Other than that, LGTM.

-- 
Heikki Linnakangas
Neon (https://neon.tech)