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:
parent
499edb0974
commit
c1500a1ba7
9
src/backend/utils/cache/typcache.c
vendored
9
src/backend/utils/cache/typcache.c
vendored
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user