Andres Freund <andres@anarazel.de> writes:
> Something like the attached. Still needs a bit of polish, e.g. adding the test
> case from above.
> I'm a bit uncomfortable adding a function call below
> * Perform swapping of the relcache entry contents. Within this
> * process the old entry is momentarily invalid, so there *must* be no
> * possibility of CHECK_FOR_INTERRUPTS within this sequence. Do it in
> * all-in-line code for safety.
Ugh. I don't know what pgstat_unlink_relation does, but assuming
that it can never throw an error seems like a pretty bad idea,
especially when you aren't adding that to its API spec (contrast
the comments for MemoryContextSetParent).
Can't that part be done outside the critical section?
regards, tom lane