In PrepareToInvalidateCacheTuple, don't force initialization of catalog
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 5 Mar 2008 17:01:41 +0000 (17:01 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 5 Mar 2008 17:01:41 +0000 (17:01 +0000)
commit742d6fe6b49edee01f5f6659aecb7b04a84a7fc4
tree942f8098a6d900e682f6b28466503df55f65ceb9
parenta64f7f8dbf4ef139749d2a1676ede7a89c6b4d08
In PrepareToInvalidateCacheTuple, don't force initialization of catalog
caches that we don't actually need to touch.  This saves some trivial
number of cycles and avoids certain cases of deadlock when doing concurrent
VACUUM FULL on system catalogs.  Per report from Gavin Roy.

Backpatch to 8.2.  In earlier versions, CatalogCacheInitializeCache didn't
lock the relation so there's no deadlock risk (though that certainly had
plenty of risks of its own).
src/backend/utils/cache/catcache.c