Maintain RelIdToTypeIdCacheHash in TypeCacheOpcCallback()

Alexander Korotkov <akorotkov@postgresql.org>

Commit: bb78e4267817b5c1f5a8ff5b0b93fe756e514bb0
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: 2025-04-23T17:26:52Z
Releases: 18.0
Maintain RelIdToTypeIdCacheHash in TypeCacheOpcCallback()

b85a9d046efd introduced a new RelIdToTypeIdCacheHash, whose entries should
exist for typecache entries with TCFLAGS_HAVE_PG_TYPE_DATA flag set or any
of TCFLAGS_OPERATOR_FLAGS set or tupDesc set.  However, TypeCacheOpcCallback(),
which resets TCFLAGS_OPERATOR_FLAGS, was forgotten to update
RelIdToTypeIdCacheHash.

This commit adds a delete_rel_type_cache_if_needed() call to the
TypeCacheOpcCallback() function to maintain RelIdToTypeIdCacheHash after
resetting TCFLAGS_OPERATOR_FLAGS.

Also, this commit fixes the name of the delete_rel_type_cache_if_needed()
function in its mentions in the comments.

Reported-by: Noah Misch
Discussion: https://postgr.es/m/20250411203241.e9.nmisch%40google.com

Files

PathChange+/−
src/backend/utils/cache/typcache.c modified +14 −2

Discussion