DB->verify |
#include <db.h>int DB->verify(DB *db, const char *file, const char *database, FILE *outfile, u_int32_t flags);
The DB->verify function verifies the integrity of all databases in the file specified by the file argument, and optionally outputs the databases' key/data pairs to a file stream.
The flags parameter must be set to 0 or one of the following values:
Because the key/data pairs are output in page order as opposed to the sort order used by db_dump, using DB->verify to dump key/data pairs normally produces less than optimal loads for Btree databases.
In addition, the following flags may be set by bitwise inclusively OR'ing them into the flags parameter:
The DB->verify function normally verifies that btree keys and duplicate items are correctly sorted and hash keys are correctly hashed. If the file being verified contains multiple databases using differing sorting or hashing algorithms, some of them must necessarily fail database verification as only one sort order or hash function can be specified before DB->verify is called. To verify files with multiple databases having differing sorting orders or hashing functions, first perform verification of the file as a whole by using the DB_NOORDERCHK flag, and then individually verify the sort order and hashing function for each database in the file using the DB_ORDERCHKONLY flag.
When this flag is specified, a database argument should also be specified, indicating the database in the physical file which is to be checked. This flag is only safe to use on databases that have already successfully been verified using DB->verify with the DB_NOORDERCHK flag set.
The database argument must be set to NULL except when the DB_ORDERCHKONLY flag is set.
The DB->verify function returns a non-zero error value on failure, 0 on success, and DB_VERIFY_BAD if a database is corrupted. When the DB_SALVAGE flag is specified, the DB_VERIFY_BAD return means that all key/data pairs in the file may not have been successfully output.
The DB->verify function is the underlying function used by the db_verify utility. See the db_verify utility source code for an example of using DB->verify in a IEEE/ANSI Std 1003.1 (POSIX) environment.
The DB->verify function may fail and return a non-zero error for the following conditions:
The DB->verify function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. If a catastrophic error has occurred, the DB->verify function may fail and return DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.