Andres Freund <and...@anarazel.de> writes: > On 2022-04-16 14:42:39 -0400, Tom Lane wrote: >> I think (based on the above argument) that what it intends to enforce >> is not really the system design we need, but it certainly isn't >> helping anyone that it enforces that design incorrectly.
> I think it's approximately right for the current caller. But that caller > likely needs an improved design around snapshots... Yeah, I think the real issue is that checking HaveRegisteredOrActiveSnapshot in this way doesn't provide a very good guarantee of what we really want to know, which is that the session's advertised xmin is old enough to prevent removal of whatever toast data we're trying to fetch. The fact that we have a snapshot at the instant of fetch doesn't prove that it existed continually since we fetched the toast reference, which seems to be the condition we actually need to assure. (And TBH I see little reason to think that whether the snapshot is the CatalogSnapshot or not changes things in any meaningful way.) I don't yet see a practical way to check for the real concern. While it's something to worry about, there's no reason to think that v15 is any worse than prior versions in this area, is there? So I'm inclined to remove this from the list of v15 open items, or at least demote the remaining concern to "older bug" status. regards, tom lane