1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-27 22:56:53 +03:00

Update header comment for lookup_type_cache()

Describe the way we handle concurrent invalidation messages.

Discussion: https://postgr.es/m/CAPpHfdsQhwUrnB3of862j9RgHoJM--eRbifvBMvtQxpC57dxCA%40mail.gmail.com
Reviewed-by: Andrei Lepikhov, Artur Zakirov, Pavel Borisov
This commit is contained in:
Alexander Korotkov 2024-10-24 14:34:16 +03:00
parent 499edb0974
commit c1500a1ba7

View File

@ -351,6 +351,15 @@ type_cache_syshash(const void *key, Size keysize)
* invalid. Note however that we may fail to find one or more of the * invalid. Note however that we may fail to find one or more of the
* values requested by 'flags'; the caller needs to check whether the fields * values requested by 'flags'; the caller needs to check whether the fields
* are InvalidOid or not. * are InvalidOid or not.
*
* Note that while filling TypeCacheEntry we might process concurrent
* invalidation messages, causing our not-yet-filled TypeCacheEntry to be
* invalidated. In this case, we typically only clear flags while values are
* still available for the caller. It's expected that the caller holds
* enough locks on type-depending objects that the values are still relevant.
* It's also important that the tupdesc is filled after all other
* TypeCacheEntry items for TYPTYPE_COMPOSITE. So, tupdesc can't get
* invalidated during the lookup_type_cache() call.
*/ */
TypeCacheEntry * TypeCacheEntry *
lookup_type_cache(Oid type_id, int flags) lookup_type_cache(Oid type_id, int flags)