Viewing file: db_set_h_hash.html (3.8 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
Berkeley DB: Db::set_h_hash
Db::set_h_hash
|
 |
#include <db_cxx.h>
extern "C" {
typedef u_int32_t (*h_hash_fcn_type)
(DB *, const void *bytes, u_int32_t length);
};
int
Db::set_h_hash(h_hash_fcn_type h_hash_fcn);
Description: Db::set_h_hash
Set a user-defined hash function; if no hash function is specified, a
default hash function is used. Because no hash function performs
equally well on all possible data, the user may find that the built-in
hash function performs poorly with a particular data set.
The Db::set_h_hash method configures operations performed using the specified
Db handle, not all operations performed on the underlying
database.
The Db::set_h_hash method may not be called after the Db::open method is called.
If the database already exists when
Db::open is called, the information specified to Db::set_h_hash must
be the same as that historically used to create the database or
corruption can occur.
The Db::set_h_hash 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.
Parameters
- h_hash_fcn
- The h_hash_fcn parameter is the application-specified hash function.
Application-specified hash functions take a pointer to a byte string and
a length as parameters, and return a value of type u_int32_t.
The hash function must handle any key values used by the application
(possibly including zero-length keys).
Errors
The Db::set_h_hash method
may fail and throw
DbException,
encapsulating one of the following non-zero errors, or return one of
the following non-zero errors:
- EINVAL
- If the method was called after Db::open was called; the
specified hash function differs from the hash function with which the
database was created; or if an
invalid flag value or parameter was specified.
Class
Db
See Also
Databases and Related Methods
Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.
|