Re: tuptoaster.c must *not* use SnapshotAny - Mailing list pgsql-hackers

From Tom Lane
Subject Re: tuptoaster.c must *not* use SnapshotAny
Date
Msg-id 23314.1011277356@sss.pgh.pa.us
Whole thread Raw
In response to Re: tuptoaster.c must *not* use SnapshotAny  ("Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>)
Responses Re: tuptoaster.c must *not* use SnapshotAny  (Jan Wieck <janwieck@yahoo.com>)
List pgsql-hackers
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
>> It doesn't matter whether it's FrozenXid or not.  The tuple is not
>> visible if it's got the wrong setting of HEAP_MOVED_OFF/IN.

> But the FrozenXid tuple has HEAP_MOVED_IN and the original has
> not yet been altered to HEAP_MOVED_OFF because of abort.
> Is the HEAP_MOVED_IN tuple not visible ?

Right.  Actually it doesn't matter whether the old tuple has
HEAP_MOVED_OFF or not; it's still visible *until* the VACUUM commits.
The commit atomically switches us from the state where the unmoved
tuples are good to the state where the moved ones are good.

This is all exactly the same whether FrozenXid is involved or not.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: tuptoaster.c must *not* use SnapshotAny
Next
From: Gavin Sherry
Date:
Subject: can't shrink relation