> The problem appears to be that DataFill() is invoked on the tuple
> after toasting, and it forces the infomask to zero, losing any
> transaction status bits that may have been there.  I think perhaps
> line 93 of heaptuple.c should be
> 
> 	*infomask &= HEAP_XACT_MASK;
> 
> not
> 
> 	*infomask = 0;
> 
> Comments anyone?

One should check all places from where DataFill called...

Btw, I've found that I unlocked buffer in heap_insert *after* WriteBuffer -
fixed.

2Jan - please note NO ELOG(ERROR)... comment in heap_update: can you move
toast
code below xlog one?

Vadim

Mon, 3 Jul 2000 19:45:55 -0700 
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
RE: Re: [COMMITTERS] TOAST 
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM> writes:
> One should check all places from where DataFill called...

I did.  All the other ones start with an already-zeroed infomask.

I think this change is correct as far as it goes, though we still
have bugs elsewhere...

			regards, tom lane

Mon, 03 Jul 2000 23:01:16 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: Re: [COMMITTERS] TOAST 
Mikheev, Vadim wrote:
> 2Jan - please note NO ELOG(ERROR)... comment in heap_update: can you move
> toast
> code below xlog one?

    Will take a look if that matters.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



Tue, 4 Jul 2000 13:37:49 +0200 (MEST)
JanWieck@t-online.de (Jan Wieck)
Re: Re: [COMMITTERS] TOAST