dbh_erase(3)

-

NAME
dbh_erase, dbh_unerase, dbh_prune.3, dbh_unprune.3 - erase/unerase records or prune/unprune entire branches

SYNOPSIS
#include <dbh.h>

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);

DESCRIPTION
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.

RETURN VALUE
0 on error, 1 otherwise.

SEE ALSO
dbh (0), dbh_find (3), dbh_load (3), dbh_sweep (3), dbh_regen_sweep (3)

Author
Edscott Wilson Garcia <edscott@xfce.org>