Re: Buffer locking is special (hints, checksums, AIO writes) - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Buffer locking is special (hints, checksums, AIO writes)
Date
Msg-id 3ekkshczkcnqapdjefookcooolssvcxfpyblp7smafj7pqvzbw@3s523xthb56r
Whole thread
In response to Re: Buffer locking is special (hints, checksums, AIO writes)  (Antonin Houska <ah@cybertec.at>)
List pgsql-hackers
Hi,

On 2026-03-13 16:01:40 +0100, Antonin Houska wrote:
> Andres Freund <andres@anarazel.de> 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



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: tid_blockno() and tid_offset() accessor functions
Next
From: Jacob Champion
Date:
Subject: Re: [oauth] Stabilize the libpq-oauth ABI (and allow alternative implementations?)