#include <db_cxx.h> int Db::truncate(DbTxn *txnid, u_int32_t *countp, u_int32_t flags);
The Db::truncate()
method empties the database, discarding all
records it contains. The number of records discarded from the
database is returned in countp.
When called on a database configured with secondary indices using the
Db::associate()
method, the Db::truncate()
method truncates the primary database and
all secondary indices. A count of the records discarded from the
primary database is returned.
It is an error to call the Db::truncate()
method on a database with
open cursors.
The Db::truncate()
method is non-atomic when used on a sliced
database. If the operation fails, it is possible for the resulting database files
to be in an inconsistent state.
The Db::truncate()
method either returns a non-zero error value or throws an
exception that encapsulates a non-zero error value on
failure, and returns 0 on success.
If the operation is part of an application-specified transaction, the txnid parameter is a transaction handle returned from DbEnv::txn_begin() ; if the operation is part of a Berkeley DB Concurrent Data Store group, the txnid parameter is a handle returned from DbEnv::cdsgroup_begin() ; otherwise NULL. If no transaction handle is specified, but the operation occurs in a transactional database, the operation will be implicitly transaction protected.
The countp parameter references memory into which the number of records discarded from the database is copied.
The Db::truncate()
method may fail and throw a DbException
exception, encapsulating one of the following non-zero errors, or return one
of the following non-zero errors:
A transactional database environment operation was selected to resolve a deadlock.
DbDeadlockException is thrown if
your Berkeley DB API is configured to throw exceptions.
Otherwise, DB_LOCK_DEADLOCK
is returned.
A Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time.
You attempted to open a database handle that is configured for no waiting exclusive locking, but the exclusive lock could not be immediately obtained. See Db::set_lk_exclusive() for more information.
DbLockNotGrantedException is thrown if
your Berkeley DB API is configured to throw exceptions.
Otherwise, DB_LOCK_NOTGRANTED
is returned.