2
<!--Copyright 1997-2002 by Sleepycat Software, Inc.-->
3
<!--All rights reserved.-->
4
<!--See the file LICENSE for redistribution information.-->
7
<title>Berkeley DB: Db::key_range</title>
8
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
9
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
12
<a name="2"><!--meow--></a>
13
<table width="100%"><tr valign=top>
15
<h1>Db::key_range</h1>
18
<a href="../api_cxx/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
23
#include <db_cxx.h>
26
Db::key_range(DbTxn *txnid
27
Dbt *key, DB_KEY_RANGE *key_range, u_int32_t flags);
30
<p>The Db::key_range method returns an estimate of the proportion of keys
31
that are less than, equal to, and greater than the specified key. The
32
underlying database must be of type Btree.
33
<p>The information is returned in the <b>key_range</b> argument, which
34
contains three elements of type double: <b>less</b>, <b>equal</b>,
35
and <b>greater</b>. Values are in the range of 0 to 1; for example,
36
if the field <b>less</b> is 0.05, 5% of the keys in the database are
37
less than the key argument. The value for <b>equal</b> will be zero
38
if there is no matching key, and will be non-zero otherwise.
39
<p>If the operation is to be transaction-protected, the <b>txnid</b>
40
parameter is a transaction handle returned from <a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>;
42
The Db::key_range method does not retain the locks it acquires for the
43
life of the transaction, so estimates may not be repeatable.
44
<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
45
<p>The Db::key_range method either returns a non-zero error value or throws an exception that
46
encapsulates a non-zero error value on failure, and returns 0 on success.
48
<p>The Db::key_range method may fail and throw an exception or return a non-zero error for the following conditions:
50
<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
51
<p>The underlying database was not of type Btree.
53
<p>If the operation was selected to resolve a deadlock, the
54
Db::key_range method will fail and
55
and either return <a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a> or
56
throw a <a href="../api_cxx/deadlock_class.html">DbDeadlockException</a> exception.
57
<p>The Db::key_range method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
58
If a catastrophic error has occurred, the Db::key_range method may fail and
59
either return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw a
60
<a href="../api_cxx/runrec_class.html">DbRunRecoveryException</a>,
61
in which case all subsequent Berkeley DB calls will fail in the same way.
63
<a href="../api_cxx/db_class.html">Db</a>
65
<a href="../api_cxx/db_list.html">Databases and Related Methods</a>
67
<table width="100%"><tr><td><br></td><td align=right>
68
<a href="../api_cxx/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
70
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>