• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/db-4.7.25.NC/docs_src/ref/changelog/
1<!--"$Id-->
2<html>
3<head>
4<title>The Berkeley DB Package: DB 3.1.14 Change Log</title>
5<meta name="description" content="Berkeley DB: A database programmatic toolkit.">
6<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods">
7</head>
8<body bgcolor=white>
9
10<h3 align=center>Berkeley DB 3.1.14 Change Log</h3>
11
12<h3>Database On-Disk Format Changes:</h3>
13<ol>
14<li>The on-disk Btree/Recno format has changed from version 7 to version
158, and the on-disk Hash format has changed from version 6 to version 7.
16For information on upgrading database formats, see "Upgrading Applications
17to the 3.1 release" in the Berkeley DB Reference Guide for more
18information.
19</ol>
20
21<h3>Major New Features:</h3>
22<ol>
23
24<li>Berkeley DB now includes support for VxWorks systems.
25<li>Off-page duplicates now stored in an on-disk B+tree structure,
26greatly speeding searches in sorted duplicate sets.  In addition,
27a count of duplicate items is now maintained for all duplicate sets,
28providing better optimization of logical joins. [#303]
29<li>New cursor method, DBcursor-&gt;c_count, that returns the number of
30duplicate items associated with the referenced key. [#303]
31<li>Berkeley DB now includes a RPC-based client/server implementation. [#426]
32<li>Recovery to a specified time is supported. [#855]
33<li>New cursor method, DB-&gt;verify, that supports database verification
34and salvage. [#588, #827, #1156]
35<li>Add a Berkeley DB method to rename databases. [#1492]
36<li>Significantly increased verbose error output for debugging support. [#1866]
37
38</ol>
39<h3>Interface Additions and Changes:</h3>
40<ol>
41
42<li>All of the Berkeley DB utilities now support the -V option to display
43the library version.
44<li>It is now possible to set almost all the Berkeley DB environment
45configuration options in the environment's DB_CONFIG file.  There are new
46DB_ENV handle methods for setting the database directory, logging
47directory and temporary file directory.  These were previously set using
48the DB_DATA_DIR, DB_LOG_DIR and DB_TMP_DIR strings in the config argument
49to the DB_ENV-&gt;open and DB_ENV-&gt;remove methods.  As part of this change,
50the config argument to the DB_ENV-&gt;open and DB_ENV-&gt;remove methods has
51been removed in favor of the new methods.
52<li>Add a private field to the DBT structure, enabling applications to
53pass private information into the Btree/Hash comparison/hashing functions.
54<li>Change the redo parameter of the function passed to the
55DBENV-&gt;set_tx_recover interface used to be an integer set to any one
56of a number of #defined values.  The <b>redo</b> parameter has been
57replaced by the <b>op</b> parameter, an enumerated type. [#606]
58<li>Add support for a new DBcursor-&gt;c_get flags, DB_NEXT_NODUP
59(DB_PREV_NODUP), which return the next (previous) key/data pair where the
60data item is not a duplicate of the current key. [#887, #1985]
61<li>Modify the DB-&gt;put interface, when using the DB_APPEND flag, to
62support DBT conventions. [#1523]
63<li>Add DB_NODUPDATA option to the DB-&gt;put and DBcursor-&gt;c_put
64methods to disallow duplicate duplicates. [#1866]
65<li>Add a fast return of approximate row counts for all access methods,
66add separate key and data statistics for the Hash access method.
67Regularize the naming scheme for all statistics. [#1978]
68<li>Move application-wide configuration interfaces from DbEnv method
69set to static function interfaces. [#2245]
70
71</ol>
72<h3>General Environment Changes:</h3>
73<ol>
74
75<li>It is now possible to build and run Berkeley DB on systems that do
76not have either of the mmap(2) or shmget(2) interfaces.
77<li>Take two checkpoints after recovery completes so that on next recovery
78no work needs to be redone. [#1316]
79<li>Fix a bug where, if DIAGNOSTIC was #defined, recovery could incorrectly
80assert that no files should be open and drop core. [#1316]
81<li>Fix a bug where recovering from deleting a page in a database could
82cause other operations to not be rolled-forward. [#1532]
83<li>Fix a bug where HP-UX msemaphore semaphores could cause mutex races
84on HP-UX 10.XX. [#2199]
85
86</ol>
87<h3>General Access Method Changes:</h3>
88<ol>
89
90<li>Add support for zero-length keys. [#625]
91<li>Fix a bug where join cursors were not automatically closed when the
92primary DB handle was closed. [#1325]
93<li>Fix a bug where the DB-&gt;remove method of an entire database would create
94a backup file even if the application wasn't running with transactions; the
95backup files were never removed. [#1357]
96<li>Fix a bug where when adding a new page in a chain of duplicates the
97LSN of a page could be unnecessarily updated, confusing recovery. [#1412]
98<li>Fix a bug where creating a subdatabase ignored the specification of
99a non-standard page size. [#1422]
100<li>Fix a bug where join cursors didn't correctly support DB_DBT_XXX
101flags. [#1639]
102<li>Fix bugs in join cursor handling of DBTs, and associated memory leaks.
103[#1777, #1929, #1940]
104<li>Change error return for duplicate duplicates from EINVAL to
105DB_KEYEXIST. [#1866]
106<li>Fix a bug where DB handles opened in threaded environments were not
107themselves automatically threaded. [#1943]
108<li>Fix a bug where the DB-&gt;remove method could leak memory. [#2066]
109
110</ol>
111<h3>Btree Access Method Changes:</h3>
112<ol>
113
114<li>Increase the accuracy of the returned statistics count for Btree key
115and data items.
116<li>Fix a bug where the next page in the leaf page chain might not be
117updated during recovery. [#1320]
118<li>Fix a bug where Btrees supporting retrieval by record number could
119become corrupted for some data sets. [#1663]
120<li>Fix a bug where Btrees supporting retrieval by record number could
121have incorrect record counts after reverse splits. [#1688]
122<li>Fix a bug where keys stored as overflow items could be incorrectly
123compared. [#1994]
124
125</ol>
126<h3>Hash Access Method Changes:</h3>
127<ol>
128
129<li>Fix a bug where partial puts in the hash access method could lead to
130heap corruption. [#1300]
131<li>Fix a bug where duplicate data items were not correctly identified
132during logging and could be incorrectly restored during recovery. [#1377]
133
134</ol>
135<h3>Queue Access Method Changes:</h3>
136<ol>
137
138<li>Fix a bug where an invalid lock was acquired when duplicating a cursor
139in Concurrent Data Store.
140<li>Fix a bug where EAGAIN could be returned instead of DB_LOCK_DEADLOCK.
141[#1354]
142<li>Fix a bug where the Queue Access Method could drop core if a put
143operation failed. [#1449]
144<li>Fix a bug where user requests for non-blocking locks were ignored. [#1970]
145
146</ol>
147<h3>Recno Access Method Changes:</h3>
148
149<blockquote>None.</blockquote>
150
151<h3>C++ API Changes:</h3>
152<ol>
153
154<li>Fix a large number of warnings and portability problems for various
155C++ compilers.
156<li>Add "void" type to operator = in all examples for portability.
157<li>Fix a bug where the DB_CXX_NO_EXCEPTIONS in the Db constructor was
158causing immediate failure of the call. [#1350]
159<li>Fix problems with disposing of Db and DbEnv objects: the underlying
160DB, DB_ENV objects were looked at after a close(), which is illegal,
161since the memory is freed.  And in the case where Db::Db() is called
162with a NULL DbEnv, we create our own DbEnv object, and this was not
163being deleted on close(). [#1466, #1467, #1468]
164<li>Fix a bug where Db::remove and Db::upgrade were specified 'static'.  [#1469]
165<li>Fix a bug where memory freed during open/close was written to in the
166destructor. [#1889]
167<li>Fix a bug where Db::close and DbEnv::close and their associated
168destructors interacted wrongly. [#1998]
169
170</ol>
171<h3>Java API Changes:</h3>
172<ol>
173
174<li>Fix a bug where, when building with versions 1.1.* of the JDK, an
175explicit reference for the CLASSPATH prevented compilation from within
176MS Visual studio. [#1334]
177<li>Avoid using true/false as they aren't recognized by older C++ systems
178(in this case, SPARC Solaris 2.6 with Sun Workshop 4.2). [#1384]
179<li>Fix a bug where Java could fail to run on Solaris due to memory
180allocation issues with shared libraries. [#1384]
181<li>Rewrite the Java API in C for portability reasons (it was previously
182implemented in C++). [#1384]
183
184</ol>
185<h3>Tcl API Changes:</h3>
186<ol>
187
188<li>The -mpool option to the berkdb env command is now the default.
189<li>The -txn option to the berkdb env command now implies the -lock and -log
190options.
191
192</ol>
193<h3>RPC Client/Server Changes:</h3>
194<blockquote>None.</blockquote>
195
196<h3>XA Resource Manager Changes:</h3>
197<ol>
198
199<li>Fix a bug where returned XID fields (currently unused by Tuxedo) were
200being incorrectly zeroed. [#1840]
201
202</ol>
203<h3>Locking Subsystem Changes:</h3>
204<ol>
205
206<li>Lock objects with waiters are now separately threaded to make deadlock
207detection faster. [#1983]
208<li>Fix a bug where locks could be leaked if the DB_LOCK_NOWAIT flag was
209specified and the lock was already held. [#2072]
210<li>Add a count of the lock requests that failed because DB_LOCK_NOWAIT
211was set to the lock region statistics. [#2072]
212
213</ol>
214<h3>Logging Subsystem Changes:</h3>
215<ol>
216
217<li>Fix a bug where logging print routines displayed file IDs as unsigned
218values instead of signed values.
219<li>Change the Windows/NT release to no longer pre-allocate logfiles.
220[#849, #1780]
221<li>Fix a bug where if you attempt to do catastrophic recovery on a log
222that spans a crash you can get errors of the form "open: invalid
223argument".  [#1365]
224<li>Fix a bug where the DB_ARCH_LOG flag to the log_archive interface
225could fail to return the correct set of log filenames. [#1426]
226<li>Fix a bug where free'd memory could be accessed in an error path. [#2053]
227
228</ol>
229<h3>Buffer Pool Subsystem Changes:</h3>
230<ol>
231
232<li>Fix a bug where Berkeley DB could fail when too many databases were
233created in an environment. [#1528]
234
235</ol>
236<h3>Transaction Subsystem Changes:</h3>
237<ol>
238
239<li>Fix a number of bugs in DB file registration that could cause problems
240if files were repeatedly opened and closed. [#1943]
241<li>Remove all requirements that applications flush the log before closing
242the environment to ensure that no additional work needs to be done during
243recovery. [#2006]
244<li>Fix a bug where an unthreaded DB handle could be incorrectly used in
245a threaded environment, during recovery. [#2033]
246
247</ol>
248<h3>Utility Changes:</h3>
249<ol>
250
251<li>Convert the supporting utilities to use common code for signal
252and process-ID log file handling. [#1596]
253
254</ol>
255<h3>Configuration, Documentation, Portability and Build Changes:</h3>
256<ol>
257
258<li>Upgrade to the current Perl BerkeleyDB and DB_File modules.
259<li>Upgrade to the current Scriptics Tcl release (8.3), add the --with-tcl
260option to automatically use the tclConfig.sh information to correctly
261compile the Tcl API and test suite.
262<li>Upgrade to current versions of libtool (1.3.4), autoconf and the
263config scripts.
264<li>Update the test suite to no longer require a large set of UNIX
265utilities to run.
266<li>Convert to CVS/RCS source repository and file revision Ids.
267<li>Include Windows 2000 support.
268<li>Support systems without strtoul(3) support. [#1337]
269<li>Fix a bug where the DB 1.85 API interface was incorrectly named, so
270configuration scripts wouldn't find "dbopen" and applications wouldn't
271load. [#1345]
272<li>Fix a bug where AIX wouldn't compile because there was no MUTEX_INIT
273macro for the test-and-set mutexes. [#1354]
274<li>Fix a bug where Berkeley DB incorrectly aligned memory from the shared
275memory regions for gcc on the UltraSparc. [#1395, #1404]
276<li>Fix a bug where DB did not correctly build on the Siemens Nixdorf
277Reliant Unix because the initspin() function was expected to return an
278int. [#1418]
279<li>Fix a bug where DB would fail on HP-UX, apparently the HP-UX C library
280contains pread/pwrite symbols, but they don't work. [#1459]
281<li>Call GetTempDir() to determine system's temp directory on Windows. [#1478]
282<li>Fix a case where large buffers could be allocated on the stack when
283running on Windows, leading to stack resource starvation in multithreaded
284programs.  [#1530]
285<li>Fix a bug where DB would fail to compile on AIX because of a missing
286MUTEX_INIT definition. [#1561]
287<li>Fix a bug where out-of-memory condition when scanning a directory failed
288to close the directory. [#1872]
289<li>Remove all use of signal functions. [#1964]
290<li>Fix a bug where the POSIX fcntl system call would be called even after
291the underlying Berkeley DB open call had been replaced by the application.
292[#2114]
293<li>Fix a bug where the standard free routine was still called when finishing
294a directory scan, even after the application had replaced the underlying OS
295functionality. [#2115]
296
297</ol>
298
299</body>
300</html>
301