Hi,

On 2026-03-13 16:01:40 +0100, Antonin Houska wrote:
> Andres Freund <[email protected]> wrote:
> 
> > Probably need to update the comments a bit.  What about something like
> > 
> > 
> > /*
> >  * Is the snapshot implemented as an MVCC snapshot (i.e. it uses
> >  * SNAPSHOT_MVCC).  If so, there will be at most be one visible row in a 
> > chain
> >  * of updated tuples, and each visible tuple will be seen exactly once.
> >  */
> > #define IsMVCCSnapshot(snapshot)  \
> 
> The ", and each visible tuple ..." part seemed to me redundant, so I omitted
> it. If you think I'm wrong, please add it yourself when committing the patch.

It's relevant in that many non-mvcc scan types do *not* guarantee that (i.e. a
tuple may never be seen, e.g. because the new version of the tuple is placed
before the current scan position of a scan and the old version of the tuple is
not considered visible anymore).


> I also added a comment to the IsHistoricMVCCSnapshot(), trying to explain what
> "historic" means.

Good idea.


Pushed with slightly revised comments and a different commit message (I
thought it was important to explain that this fixes breakage during logical
decoding, even if currently hard to reach).


Thanks for the report and patch!

- Andres


Reply via email to