Re: Further open item (Was: Status of 7.2)

Hannu Krosing <hannu@tm.ee>

From: Hannu Krosing <hannu@tm.ee>
To: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: "Tille, Andreas" <TilleA@rki.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2001-11-22T08:59:50Z
Lists: pgsql-hackers
Bruce Momjian wrote:
> 
> Huh, a non-zero XMAX is fine.  You mark the XMAX when you _think_ you
> are updating it.  It is only expired when the XMAX on the tuple is
> committed.

But

http://www.postgresql.org/idocs/index.php?sql-syntax-columns.html

claims:

xmax    The identity (transaction ID) of the deleting transaction,
        or zero for an undeleted tuple. In practice, this is 
        never nonzero for a visible tuple.

cmax    The command identifier within the deleting transaction,
        or zero. Again, this is never nonzero for a visible tuple.


Which is IMHO good and useful behaviour, for example for all kinds of
mirroring

I also think that this kas historically been the behaviour and that 
this was broken sometime in not too distant past (i.e after postgres95
;)
by foreign keys and/or somesuch.

Tom Lane once told me about a way to determine the visibility of a tuple 
by other means than [x|c][min|max] but I can't find/remember it anymore
;(

-----------------
Hannu