Alvaro Herrera <alvherre@commandprompt.com> writes:
> I just noticed that this patch
>> Create a "relation mapping" infrastructure to support changing the relfilenodes
>> of shared or nailed system catalogs. This has two key benefits:
> creates a new function pg_relation_filenode() that only uses the
> syscache to fetch the relation's filenode, without locking it. I wonder
> if we could do the same in the pg_relation_size() function and friends,
> to avoid having to grab a lock on the relation.
I don't think it's a good idea to try to do physical access to the
relation without any lock. The filenode function is a bit special
because it doesn't need anything except the pg_class row itself.
(Except in the case of a mapped relationn, but the underlying
mapping entry is unlikely to disappear, too.)
regards, tom lane