I wrote: > (It does look like RelationGetBufferForTuple > knows about updating vmbuffer, but there's one code path through the > if-nest at 3850ff that doesn't call that.)
Although ... isn't RelationGetBufferForTuple dropping the ball on this point too, in the code path at the end where it has to extend the relation? I'm now inclined to think that we should toss every single line of that code, take RelationGetBufferForTuple out of the equation, and have just *one* place that rechecks for PageAllVisible having just become set. It's a rare enough case that optimizing it is completely not worth the code complexity and risk (er, reality) of hard-to-locate bugs. regards, tom lane