Hi,
On Sep 29, 2022, 09:38 +0800, Xiaoran Wang <wxiao...@vmware.com>, wrote: > Hi, > The max size for the shmem hash table name is SHMEM_INDEX_KEYSIZE - 1. but > when the caller uses a longer hash table name, it doesn't report any error, > insteadit just uses the first SHMEM_INDEX_KEYSIZE -1 chars as the hash table > name. > I created some shmem hash tables with the same prefix which was longer > thanSHMEM_INDEX_KEYSIZE - 1, and the size of those hash tables were the > same,then only one hash table was created. But I thought those hash tables > were createdsuccessfully. > I know this is a corner case, but it's difficult to figure it out when run > into it. So I addan assertion to prevent it. > > Thanks,Xiaoran Seems Postgres doesn’t have a case that strlen(name) >= SHMEM_INDEX_KEYSIZE(48). The max length of name I found is 29: ``` ShmemInitHash("Shared Buffer Lookup Table” ``` But it will help for other Databases built on Postgres or later Postgres in case of forgetting to update SHMEM_INDEX_KEYSIZE when new shmem added with a name longer than current SHMEM_INDEX_KEYSIZE. And we don’t have such assertion now. So, +1 for the patch. Regards, Zhang Mingli