In PrepareToInvalidateCacheTuple, don't force initialization of catalog
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 5 Mar 2008 17:01:33 +0000 (17:01 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 5 Mar 2008 17:01:33 +0000 (17:01 +0000)
commit9436257b411058f4e73b4f780c5bfe831e5a5d7e
tree2f2bc01a59f65e9aad13aaacbccacec67836a672
parent0f8a34a73052950eb434618cef8d61f0ffef8b9e
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