int dbh_erase (DBHashTable *dbh);
int dbh_unerase (DBHashTable *dbh);
int dbh_prune (DBHashTable *dbh, unsigned char *key, unsigned char subtree_length);
int dbh_unprune (DBHashTable *dbh, unsigned char *key, unsigned char subtree_length);
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.
0 on error, 1 otherwise.
dbh (0), dbh_find (3), dbh_load (3), dbh_sweep (3), dbh_regen_sweep (3)
Edscott Wilson Garcia <email@example.com>
The man pages dbh_prune(3), dbh_unerase(3) and dbh_unprune(3) are aliases of dbh_erase(3).