Re: Trying to understand Tuple Header

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: "Subramanian,Ramachandran" <ramachandran.subramanian@alte-leipziger.de>
Cc: "pgsql-novice@lists.postgresql.org" <pgsql-novice@lists.postgresql.org>
Date: 2026-05-03T19:48:47Z
Lists: pgsql-novice
On Sun, May 3, 2026 at 12:25 PM Subramanian,Ramachandran <
ramachandran.subramanian@alte-leipziger.de> wrote:

> The binary value of t_infomask for both the tuples are identical, but they
> produce different column values for xmin_commited, xmin_aborted ….  in the
> SQL  !!!.
>
>
>
> Am I not seeing something that is obvious?
>

You didn't re-check the infomask data after running the select query,
instead assuming the bits didn't change.  They did.  SELECT is not a
read-only operation, it participates in optimizations.  Called "writing
hint bits".  Manually evaluating the various tests against the data you did
show would have proven that the pre-select-data had zeros where the second
query claims there are ones.

David J.