
> > How do we know, that a (newly) FrozenXid tuple does not still have 
> > a (visible) duplicate ?
> 
> It's *not* visible, if you are applying any visibility checks whatever.
> But SnapshotAny bypasses all visibility checking.

I am concerned about the case where VACUUM FULL:
1. inserts heap tuple to new location using FrozenXid
2. updates original heap tuples's xmax

What if we crash/abort between step 1 and 2 but we used FrozenXid for 1.
Don't know if we actually do this, but imho we are only allowed 
to use FrozenXid for an inplace vacuum operation.

Andreas

Thu, 17 Jan 2002 14:03:35 +0100
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
Re: tuptoaster.c must *not* use SnapshotAny 
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
> I am concerned about the case where VACUUM FULL:
> 1. inserts heap tuple to new location using FrozenXid
> 2. updates original heap tuples's xmax

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.

			regards, tom lane

Thu, 17 Jan 2002 09:08:03 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: tuptoaster.c must *not* use SnapshotAny 