Mark the record currently loaded into memory as erased. If no record is currently loaded, behaviour is undefined.

This is the opposite of dbh_erase (). Mark the record currently loaded into memory as unerased. If no record is currently loaded, behaviour is undefined.

Erases a whole subtree from the record currently loaded into memory. Records are not really removed fisically, but rather marked erased so they may be recovered (if not overwritten later on). Records are permanently removed after DBHashTable is reconstructed with dbh_regen_sweep () or dbh_regen_fanout ().

Does the opposite of dbh_prune (), marking entire subtree as unerased. May fail to work if records have been overwritten since the dbh_prune () instruction was issued.

In the dbh_prune and dbh_unprune routines, key is the key of top level record of subtree to erase and subtree_length is the number of branches to erase.