Обсуждение: Fix PrivateRefCount hash table key size

Поиск
Список
Период
Сортировка

Fix PrivateRefCount hash table key size

От
Bertrand Drouvot
Дата:
Hi hackers,

While working on [1], I noticed that there is a type mismatch when computing
the key size for the PrivateRefCount hash table. Indeed, the first
PrivateRefCountEntry member type is Buffer (int), so the keysize should be
sizeof(Buffer) and not sizeof(int32).

PFA attached a patch to fix it.

It has been kind of automatically detected while working on [1], so I'm pretty
confident there are no other type mismatches for hash table key size.

Note that this is exactly the kind of issue that the macro proposed in [1] would
avoid.

[1]: https://www.postgresql.org/message-id/flat/aS2b3LoUypW1/Gdz%40ip-10-97-1-34.eu-west-3.compute.internal

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

Вложения

Re: Fix PrivateRefCount hash table key size

От
Nathan Bossart
Дата:
On Tue, Dec 02, 2025 at 02:43:25PM +0000, Bertrand Drouvot wrote:
> -    hash_ctl.keysize = sizeof(int32);
> +    hash_ctl.keysize = sizeof(Buffer);
>      hash_ctl.entrysize = sizeof(PrivateRefCountEntry);

LGTM.  Appears to be a minor oversight in commit 4b4b680c3d, but it's of no
consequence because Buffer has been a signed 32-bit integer since commit
bdadc9bf1c.  Will go commit this.

-- 
nathan