I attached files of new version of the patch, I applied your tweaks.
> XXX All dictionaries, but only when there's invalid dictionary?
I've made a little optimization. I introduced hashvalue into
TSDictionaryCacheEntry. Now released only DSM of altered or dropped
dictionaries.
> > /* XXX not really a pointer, so the name is misleading */
>
> I think we don't need DictPointerData struct anymore, because only
> ts_dict_shmem_release function needs it (see comments above) and we only
> need it to hash search. I'll move all fields of DictPointerData to
> TsearchDictKey struct.
I was wrong, DictInitData also needs DictPointerData. I didn't remove
DictPointerData, I renamed it to DictEntryData. Hope that it is a more
appropriate name.
--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company