On Tue, Jun 9, 2020 at 1:26 PM Peter Geoghegan <pg@bowt.ie> wrote:
> The functionality in question (the code from the
> HeapCheckForSerializableConflictOut() case statement) was originally
> discussed here, with the details finalized less than a week before SSI
> was committed in 2011:
>
> https://www.postgresql.org/message-id/flat/1296499247.11513.777.camel%40jdavis#9e407424df5f8794360b6e84de60200a
>
> It hasn't really changed since that time.
Right, the only change was to move things around a bit to suport new
table AMs. Speaking of which, it looks like the new comment atop
CheckForSerializableConflictOut() could use some adjustment. It says
"A table AM is reading a tuple that has been modified. After
determining that it is visible to us, it should call this function..."
but it seems the truth is a bit more complicated than that.