From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | John Naylor <johncnaylorls(at)gmail(dot)com>, Jeff Davis <pgsql(at)j-davis(dot)com> |
Cc: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Junwang Zhao <zhjwpku(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Gurjeet Singh <gurjeet(at)singh(dot)im>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Change GUC hashtable to use simplehash? |
Date: | 2024-02-07 15:41:38 |
Message-ID: | 486847dc-6de5-464a-938e-bac98ec2438b@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 22.01.24 03:03, John Naylor wrote:
> I wrote:
>> fasthash_init(&hs, sizeof(Datum), kind);
>> fasthash_accum(&hs, (char *) &value, sizeof(Datum));
>> return fasthash_final32(&hs, 0);
> It occurred to me that it's strange to have two places that length can
> be passed. That was a side effect of the original, which used length
> to both know how many bytes to read, and to modify the internal seed.
> With the incremental API, it doesn't make sense to pass the length (or
> a dummy macro) up front -- with a compile-time fixed length, it can't
> possibly break a tie, so it's just noise.
>
> 0001 removes the length from initialization in the incremental
> interface. The standalone functions use length directly the same as
> before, but after initialization. Thoughts?
Unrelated related issue: src/include/common/hashfn_unstable.h currently
causes warnings from cpluspluscheck:
/tmp/cirrus-ci-build/src/include/common/hashfn_unstable.h: In function
‘int fasthash_accum_cstring_unaligned(fasthash_state*, const char*)’:
/tmp/cirrus-ci-build/src/include/common/hashfn_unstable.h:201:20:
warning: comparison of integer expressions of different signedness:
‘int’ and ‘long unsigned int’ [-Wsign-compare]
201 | while (chunk_len < FH_SIZEOF_ACCUM && str[chunk_len] != '\0')
| ^
and a few more like that.
I think it would be better to declare various int variables and
arguments as size_t instead. Even if you don't actually need the larger
range, it would make it more self-documenting.
From | Date | Subject | |
---|---|---|---|
Next Message | jian he | 2024-02-07 15:43:16 | Re: recently added jsonpath method change jsonb_path_query, jsonb_path_query_first immutability |
Previous Message | Bharath Rupireddy | 2024-02-07 15:30:00 | Re: Printing backtrace of postgres processes |