"letizia leo" <[EMAIL PROTECTED]> wrote > > Transaction T1 updates a given tuple -- xmax is set to T1 on that tuple > ... > later on, T1 aborts... we believe that in this circumstance HEAP_XMAX_INVALID should > be set on the tuple to signal that the tuple was not actually "deleted" by T1 since this aborted. >
Not really. HEAP_XMAX_INVALID is a value of the hint bits, which helps to fast determine if a tuple is visible. The important thing is the header xmin, xmax, cmin, cmax stuff, which decides the visibility of the a tuple. When they are checked, current backend might be happy to set the hint bits so that other backends can fast determine its visibility with less job. So you can say even without these hint bits, Postgres won't make anything wrong, but may get slower. Regards, Qingqing ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match