Here is the new version of the patch.
Now RemoveTSDictionaryById() and AlterTSDictionary() unpin the
dictionary DSM segment. So if all attached backends disconnect allocated
DSM segments will be released.
lookup_ts_dictionary_cache() may unping DSM mapping for all invalid
dictionary cache entries.
I added xmax in DictPointerData. It is used as a lookup key now too. It
helps to reload a dictionary after roll back DROP command.
There was a bug in ts_dict_shmem_location(), I fixed it.
--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company