mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
350 lines
13 KiB
HTML
350 lines
13 KiB
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>Chapter 3. Access Method Operations</title>
|
||
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
||
<link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
|
||
<link rel="up" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
|
||
<link rel="prev" href="rq_conf.html" title="Queue and Recno access method specific configuration" />
|
||
<link rel="next" href="am_opensub.html" title="Opening multiple databases in a single file" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">Chapter 3.
|
||
Access Method Operations
|
||
</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="rq_conf.html">Prev</a> </td>
|
||
<th width="60%" align="center"> </th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="am_opensub.html">Next</a></td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div>
|
||
<div class="chapter" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title"><a id="am"></a>Chapter 3.
|
||
Access Method Operations
|
||
</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="toc">
|
||
<p>
|
||
<b>Table of Contents</b>
|
||
</p>
|
||
<dl>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am.html#am_open">Database open</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_opensub.html">Opening multiple databases in a single file</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
<dl>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_opensub.html#idp724392">Configuring databases sharing a file</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_opensub.html#idp768720">Caching databases sharing a file</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_opensub.html#idp769416">Locking in databases based on sharing a file</a>
|
||
</span>
|
||
</dt>
|
||
</dl>
|
||
</dd>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_partition.html">Partitioning databases</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
<dl>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_partition.html#am_partition_keys">Specifying partition keys</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_partition.html#am_partition_function">Partitioning callback</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_partition.html#partition_file_placement">Placing partition files</a>
|
||
</span>
|
||
</dt>
|
||
</dl>
|
||
</dd>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_get.html">Retrieving records</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_put.html">Storing records</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_delete.html">Deleting records</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_stat.html">Database statistics</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_truncate.html">Database truncation</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_upgrade.html">Database upgrade</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_verify.html">Database verification and salvage</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_sync.html">Flushing the database cache</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_close.html">Database close</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_second.html">Secondary indexes</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
<dl>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_second.html#idp863384">Error Handling With Secondary Indexes</a>
|
||
</span>
|
||
</dt>
|
||
</dl>
|
||
</dd>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_foreign.html">Foreign key indexes</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect1">
|
||
<a href="am_cursor.html">Cursor operations</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
<dl>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_curget">Retrieving records with a cursor</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_curput">Storing records with a cursor</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_curdel">Deleting records with a cursor</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_curdup">Duplicating a cursor</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_join">Equality Join</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_count">Data item count</a>
|
||
</span>
|
||
</dt>
|
||
<dt>
|
||
<span class="sect2">
|
||
<a href="am_cursor.html#am_curclose">Cursor close</a>
|
||
</span>
|
||
</dt>
|
||
</dl>
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
<p>Once a database handle has been created using <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a>, there
|
||
are several standard access method operations. Each of these operations
|
||
is performed using a method referred to by the returned handle.
|
||
Generally, the database will be opened using <a href="../api_reference/C/dbopen.html" class="olink">DB->open()</a>. If the
|
||
database is from an old release of Berkeley DB, it may need to be upgraded to
|
||
the current release before it is opened using <a href="../api_reference/C/dbupgrade.html" class="olink">DB->upgrade()</a>.</p>
|
||
<p>Once a database has been opened, records may be retrieved (<a href="../api_reference/C/dbget.html" class="olink">DB->get()</a>),
|
||
stored (<a href="../api_reference/C/dbput.html" class="olink">DB->put()</a>), and deleted (<a href="../api_reference/C/dbdel.html" class="olink">DB->del()</a>).</p>
|
||
<p>Additional operations supported by the database handle include
|
||
statistics (<a href="../api_reference/C/dbstat.html" class="olink">DB->stat()</a>), truncation (<a href="../api_reference/C/dbtruncate.html" class="olink">DB->truncate()</a>),
|
||
version upgrade (<a href="../api_reference/C/dbupgrade.html" class="olink">DB->upgrade()</a>), verification and salvage
|
||
(<a href="../api_reference/C/dbverify.html" class="olink">DB->verify()</a>), flushing to a backing file (<a href="../api_reference/C/dbsync.html" class="olink">DB->sync()</a>),
|
||
and association of secondary indices (<a href="../api_reference/C/dbassociate.html" class="olink">DB->associate()</a>). Database
|
||
handles are eventually closed using <a href="../api_reference/C/dbclose.html" class="olink">DB->close()</a>.</p>
|
||
<p>For more information on the access method operations supported by the database handle, see the <a href="../api_reference/C/db.html#dblist" class="olink">Database and Related Methods</a> section in the <em class="citetitle">Berkeley DB C API Reference Guide.</em> </p>
|
||
<div class="sect1" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title" style="clear: both"><a id="am_open"></a>Database open</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <a href="../api_reference/C/dbopen.html" class="olink">DB->open()</a> method opens a database, and takes five arguments:
|
||
</p>
|
||
<div class="variablelist">
|
||
<dl>
|
||
<dt>
|
||
<span class="term">file</span>
|
||
</dt>
|
||
<dd>
|
||
The name of the file to be opened.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">database</span>
|
||
</dt>
|
||
<dd>
|
||
An optional database name.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">type</span>
|
||
</dt>
|
||
<dd>
|
||
The type of database to open. This value will be one of
|
||
the five access methods Berkeley DB supports: DB_BTREE,
|
||
DB_HASH, DB_HEAP, DB_QUEUE or DB_RECNO, or the special
|
||
value DB_UNKNOWN, which allows you to open an existing file
|
||
without knowing its type.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">mode</span>
|
||
</dt>
|
||
<dd>
|
||
The permissions to give to any created file.
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
<p>
|
||
There are a few flags that you can set to customize open:
|
||
</p>
|
||
<div class="variablelist">
|
||
<dl>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbopen.html#open_DB_CREATE" class="olink">DB_CREATE</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
Create the underlying database and any necessary physical files.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbopen.html#open_DB_NOMMAP" class="olink">DB_NOMMAP</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
Do not map this database into process memory.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbopen.html#dbopen_DB_RDONLY" class="olink">DB_RDONLY</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
Treat the data base as read-only.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbopen.html#open_DB_THREAD" class="olink">DB_THREAD</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
The returned handle is free-threaded, that is, it can be
|
||
used simultaneously by multiple threads within the process.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbopen.html#open_DB_TRUNCATE" class="olink">DB_TRUNCATE</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
Physically truncate the underlying database file,
|
||
discarding all databases it contained. Underlying
|
||
filesystem primitives are used to implement this flag. For
|
||
this reason it is only applicable to the physical file and
|
||
cannot be used to discard individual databases from within
|
||
physical files.
|
||
</dd>
|
||
<dt>
|
||
<span class="term">
|
||
<a href="../api_reference/C/dbset_feedback.html#set_feedback_DB_UPGRADE" class="olink">DB_UPGRADE</a>
|
||
</span>
|
||
</dt>
|
||
<dd>
|
||
Upgrade the database format as necessary.
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="rq_conf.html">Prev</a> </td>
|
||
<td width="20%" align="center"> </td>
|
||
<td width="40%" align="right"> <a accesskey="n" href="am_opensub.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Queue and Recno access method specific configuration </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> Opening multiple databases in a single file</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|