> Instead of a partial row CRC, we could just as well use some other bit
> of identifying information, say the row OID.  Given a block CRC on the
> heap page, we'll be pretty confident already that the heap page is OK,
> we just need to guard against the possibility that it's older than the
> index item.  Checking that there is a valid tuple at the slot 
> indicated by the index item, and that it has the right OID, should be
> a good enough (and cheap enough) test.

This would work in 7.1 but not in 7.2 anyway (assuming UNDO and true
transaction rollback to be implemented). There will be no permanent
pg_log and after crash recovery any heap tuple with unknown t_xmin status
will be assumed as committed. Rollback will remove tuples inserted by
uncommitted transactions but this will be possible only for *logged*
modifications.

One should properly configure disk drives instead of hacking arround
this problem. "Log before modifying data pages" is *rule* for any WAL
system like Oracle, Informix and dozen others.

Vadim

Tue, 16 Jan 2001 11:36:20 -0800
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
RE: CRCs 