1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
<!--$Id: db_upgrade.so,v 10.18 2000/05/01 15:58:04 krinsky Exp $-->
<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
<!--All rights reserved.-->
<html>
<head>
<title>Berkeley DB: DB->upgrade</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
</head>
<body bgcolor=white>
<a name="2"><!--meow--></a>
<table><tr valign=top>
<td>
<h1>DB->upgrade</h1>
</td>
<td width="1%">
<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<hr size=1 noshade>
<tt>
<h3><pre>
#include <db.h>
<p>
int
DB->upgrade(DB *db, const char *file, u_int32_t flags);
</pre></h3>
<h1>Description</h1>
<p>The DB->upgrade function upgrades all of the databases included in the
file <b>file</b>, if necessary. If no upgrade is necessary,
DB->upgrade always returns success.
<p><b>Database upgrades are done in place and are destructive, e.g., if pages
need to be allocated and no disk space is available, the database may be
left corrupted. Backups should be made before databases are upgraded.
See <a href="../ref/am/upgrade.html">Upgrading databases</a> for more
information.</b>
<p>Unlike all other database operations, DB->upgrade may only be done
on a system with the same byte-order as the database.
<p>The <b>flags</b> parameter must be set to 0 or one of the following
values:
<p><dl compact>
<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd><b>This flag is only meaningful when upgrading databases from
releases before the Berkeley DB 3.1 release.</b>
<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release, the
on-disk format of duplicate data items changed. To correctly upgrade the
format requires applications specify if duplicate data items in the
database are sorted or not. Specifying the DB_DUPSORT flag
informs DB->upgrade that the duplicates are sorted, otherwise they
are assumed to be unsorted. Incorrectly specifying the value of this flag
may lead to database corruption.
<p>Further, because the DB->upgrade function upgrades a physical file
(including all of the databases it contains), it is not possible to use
DB->upgrade to upgrade files where some of the databases it
includes have sorted duplicate data items and some of the databases it
includes have unsorted duplicate data items. If the file does not have
more than a single database, or the databases do not support duplicate
data items, or all of the databases that support duplicate data items
support the same style of duplicates (either sorted or unsorted),
DB->upgrade will work correctly as long as the DB_DUPSORT
flag is correctly specified. Otherwise, the file cannot be upgraded using
DB->upgrade, and must be upgraded manually by dumping and
re-loading the databases.
</dl>
<p>The DB->upgrade function returns a non-zero error value on failure and 0 on success.
<p>The DB->upgrade function is the underlying function used by the <a href="../utility/db_upgrade.html">db_upgrade</a> utility.
See the <a href="../utility/db_upgrade.html">db_upgrade</a> utility source code for an example of using DB->upgrade
in a IEEE/ANSI Std 1003.1 (POSIX) environment.
<h1>Environment Variables</h1>
<p><dl compact>
<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
<a href="../api_c/env_open.html">DBENV->open</a> the environment variable <b>DB_HOME</b> may be used
as the path of the database environment home. Specifically, DB->upgrade
is affected by the configuration value DB_DATA_DIR.
</dl>
<h1>Errors</h1>
<p>The DB->upgrade function may fail and return a non-zero error for the following conditions:
<p><dl compact>
<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
<p>The database is not in the same byte-order as the system.
</dl>
<p><dl compact>
<p><dt><a name="DB_OLD_VERSION">DB_OLD_VERSION</a><dd>The database cannot be upgraded by this version of the Berkeley DB software.
</dl>
<p>The DB->upgrade 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->upgrade function may fail and return
<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
in the same way.
<h1>See Also</h1>
<a href="../api_c/db_create.html">db_create</a>,
<a href="../api_c/db_close.html">DB->close</a>,
<a href="../api_c/db_cursor.html">DB->cursor</a>,
<a href="../api_c/db_del.html">DB->del</a>,
<a href="../api_c/db_err.html">DB->err</a>,
<a href="../api_c/db_fd.html">DB->fd</a>,
<a href="../api_c/db_get.html">DB->get</a>,
<a href="../api_c/db_get_byteswapped.html">DB->get_byteswapped</a>,
<a href="../api_c/db_get_type.html">DB->get_type</a>,
<a href="../api_c/db_join.html">DB->join</a>,
<a href="../api_c/db_key_range.html">DB->key_range</a>,
<a href="../api_c/db_open.html">DB->open</a>,
<a href="../api_c/db_put.html">DB->put</a>,
<a href="../api_c/db_remove.html">DB->remove</a>,
<a href="../api_c/db_set_bt_compare.html">DB->set_bt_compare</a>,
<a href="../api_c/db_set_bt_minkey.html">DB->set_bt_minkey</a>,
<a href="../api_c/db_set_bt_prefix.html">DB->set_bt_prefix</a>,
<a href="../api_c/db_set_cachesize.html">DB->set_cachesize</a>,
<a href="../api_c/db_set_dup_compare.html">DB->set_dup_compare</a>,
<a href="../api_c/db_set_errcall.html">DB->set_errcall</a>,
<a href="../api_c/db_set_errfile.html">DB->set_errfile</a>,
<a href="../api_c/db_set_errpfx.html">DB->set_errpfx</a>,
<a href="../api_c/db_set_flags.html">DB->set_flags</a>,
<a href="../api_c/db_set_h_ffactor.html">DB->set_h_ffactor</a>,
<a href="../api_c/db_set_h_hash.html">DB->set_h_hash</a>,
<a href="../api_c/db_set_h_nelem.html">DB->set_h_nelem</a>,
<a href="../api_c/db_set_lorder.html">DB->set_lorder</a>,
<a href="../api_c/db_set_malloc.html">DB->set_malloc</a>,
<a href="../api_c/db_set_pagesize.html">DB->set_pagesize</a>,
<a href="../api_c/db_set_paniccall.html">DB->set_paniccall</a>,
<a href="../api_c/db_set_q_extentsize.html">DB->set_q_extentsize</a>,
<a href="../api_c/db_set_realloc.html">DB->set_realloc</a>,
<a href="../api_c/db_set_re_delim.html">DB->set_re_delim</a>,
<a href="../api_c/db_set_re_len.html">DB->set_re_len</a>,
<a href="../api_c/db_set_re_pad.html">DB->set_re_pad</a>,
<a href="../api_c/db_set_re_source.html">DB->set_re_source</a>,
<a href="../api_c/db_stat.html">DB->stat</a>,
<a href="../api_c/db_sync.html">DB->sync</a>,
<a href="../api_c/db_upgrade.html">DB->upgrade</a>
and
<a href="../api_c/db_verify.html">DB->verify</a>.
</tt>
<table><tr><td><br></td><td width="1%">
<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
</body>
</html>
|