From: | Aidar Imamov <a(dot)imamov(at)postgrespro(dot)ru> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: HASH_FIXED_SIZE flag gets lost when attaching to existing hash table |
Date: | 2025-07-25 13:37:48 |
Message-ID: | 4a0dd37545a58a5e1f8c64bf8b0413fa@postgrespro.ru |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2025-07-24 20:24, Tom Lane wrote:
> Aidar Imamov <a(dot)imamov(at)postgrespro(dot)ru> writes:
>> Recently, while working with hash tables in dynahash.c, I noticed
>> something weird.
>> When a hash table is already created in shared memory, and the another
>> process
>> calls hash_create attempting to attach to it, it seems like the
>> HASH_FIXED_SIZE
>> flag gets lost.
>
> Yeah, you are right. This seems to be an oversight in 7c797e719
> which introduced that flag. It only affects predicate-lock tables
> because we don't use HASH_FIXED_SIZE anywhere else, and it'd only
> matter in EXEC_BACKEND builds, so it's not that surprising that
> nobody noticed. But we ought to fix it going forward.
>
> I don't really like your solution though. ISTM the intent of the
> code is that if the shared hashtable already exists, we adhere to the
> properties it has, we don't rely on the current caller to specify the
> exact same values. So relying on the caller to get HASH_FIXED_SIZE
> correct here seems like the wrong thing. I think we ought to add
> an isfixed flag to the shared hashtable header and copy that.
> (IOW, isfixed ought to act more like keysize/ssize/sshift, and should
> perhaps be grouped with them.)
>
> regards, tom lane
Thank's, I agree with you.
Attaching an edited version of the patch.
regards,
Aidar Imamov
Attachment | Content-Type | Size |
---|---|---|
dynahash_isfixed.patch | text/x-diff | 1.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | cca5507 | 2025-07-25 13:53:00 | Re: Logical replication launcher did not automatically restart when got SIGKILL |
Previous Message | Tom Lane | 2025-07-25 13:35:11 | Re: Retail DDL |