HEAPTUPLE_RECENTLY_DEAD, /* tuple is dead, but not deletable yet */

 It is a tuple which has been deleted AND committed but before the delete
there is a transaction started but not committed. Let call this transaction
as Transaction A.

if we create index on this time, Let's call this index as Index Aļ¼Œ it still
index this record.  my question is why need this.

The only reason I can think out (maybe also not reasonable enough) is:
If we index like this and the  isolate level of transaction A is
serializableļ¼Œ it is possible that the query in transaction A can use Index
A since it contains the snapshot data when the transaction A was began.
 this reason may be not reasonable enough is because the transaction A may
be should not see the index A at all.

Reply via email to