• 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: 3.2.9.html,v 1.4 2007/05/17 18:17:18 bostic Exp $-->
2<html>
3<head>
4<title>The Berkeley DB Package: DB 3.2.9 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.2.9 Change Log</h3>
11
12<h3>Database On-Disk Format Changes:</h3>
13<ol>
14
15<li>The on-disk Queue format has changed from version 2 to version 3.  For
16information on upgrading database formats, see "Upgrading Applications
17to the 3.2 release" in the Berkeley DB Reference Guide.
18
19</ol>
20<h3>Major New Features:</h3>
21<ol>
22
23<li>Berkeley DB now includes support for the QNX Neutrino Real-Time
24Platform.
25
26</ol>
27<h3>Interface Additions and Changes:</h3>
28<ol>
29
30<li>Add support for blocking on a Queue "consume" operation until a
31record is available, with a new flag (DB_CONSUME_WAIT) to support this.
32[#1037]
33<li>Change the Queue "consume" operation (and the DB_CONSUME flag) to
34use the DB-&gt;get() method instead of DBC-&gt;c_get(). [#1037]
35<li>Add support for extent-based queues, and a new method to support
36them, DB-&gt;set_q_extentsize. [#1463]
37<li>Add support for wrap-around record numbers in the Queue access
38method. [#1463]
39<li>Add a DB-&gt;set_feedback interface flag for database verification
40operations. [#2019]
41<li>Add a reference to a DB object as the first argument to
42four application callback functions (the callback functions set by
43DB-&gt;set_bt_compare, DB-&gt;set_bt_prefix, DB-&gt;set_dup_compare, and
44DB-&gt;set_h_hash). [#2179]
45<li>Add a DBENV-&gt;set_flags interface to support configuration of the
46database environment. [#2727]
47<li>Add the DB_CDB_ALLDB flag to the DBENV-&gt;set_flags interface to
48support Concurrent Data Store semantics across multiple databases in an
49environment.  [#2727]
50<li>Remove the app_private field from the DBT structure.  Add app_private
51fields to the DB and DB_ENV structures. [#2862]
52<li>The db_env_set_mutexlocks function has become a method on the
53environment handle, DBENV-&gt;set_mutexlocks. [#3001]
54
55</ol>
56<h3>General Environment Changes:</h3>
57<ol>
58
59<li>Add support for the destruction of mutexes which may hold system
60resources. [#1953]
61<li>Attempts to join existing regions where the application was built with
62a different version (major, minor, patch) of Berkeley DB than was the
63application that created the region, now returns EINVAL. [#2198]
64<li>Clarify the Berkeley DB documentation that all destructor methods,
65(for example, DB-&gt;close txn_commit, txn_abort and memp_fclose),
66always destroy their respective handles, regardless of their return,
67error or not. Review the appropriate code and apply minor fixes. [#2311]
68<li>Fix a bug in which creating multiple databases in one file could fail
69when using the Concurrent Data Store product. [#2713]
70<li>Fix a bug in which running recovery in one environment could cause
71mutexes to stop working in another environment open in the same process.
72[#3001]
73<li>Fix a set of bugs in which assorted DB interfaces could panic
74and return errors other than DB_RUNRECOVERY. [#3018]
75<li>Fix a bug where calling the DB_ENV-&gt;remove method using a handle
76already passed to the DB_ENV-&gt;open method dumped core. [#3097]
77<li>Fix a bug where the Concurrent Data Store product could enter
78deadlock. [#3065]
79<li>Fix a bug where recovery output spurious error messages when opening
80a previously deleted subdatabase. [#3074]
81
82</ol>
83<h3>General Access Method Changes:</h3>
84<ol>
85
86<li>Fix a bug where the DB-&gt;verify method was unable to access
87subdatabases, returning ENOENT. [#2319]
88<li>Change filename processing to not transform database names with
89leading "./" strings. [#2382]
90<li>Fix a bug in which database verification could report the wrong number of pages and fail. [#2559]
91<li>Fix a bug in which overflow pages belonging to duplicate data items
92might not be properly counted by DB-&gt;stat. [#2911]
93<li>Fix a bug in which cursors could be adjusted incorrectly when
94items are inserted into an off-page duplicate set. [#2910]
95<li>Fix a set of bugs which could cause the DB salvager to dump core
96when running with DB_AGGRESSIVE or for certain classes of corrupt databases.
97[#2784]
98<li>Fix a bug in which DB_KEYEXIST could be incorrectly returned
99by DB-&gt;verify. [#2784]
100<li>Add a stricter verification criterion:  free lists of pages are not
101allowed on metadata pages other than the master one. [#2784]
102
103</ol>
104<h3>Btree Access Method Changes:</h3>
105<ol>
106
107<li>Fix a bug where cursors in the parent of a nested transaction could
108be incorrectly adjusted after a child transaction was aborted. [#2373]
109<li>Fix a bug where an overflow page's reference count was not
110decremented during a reverse split. [#2550]
111<li>Fix a bug where the tree record count in a Btree could be left
112incorrect after an aborted insert or delete. [#2810]
113<li>Fix a bug in which too high a value of bt_minkey could cause an
114infinite loop when executing a Btree split. [#2888]
115<li>Fix a bug in which overflow pages that stored a duplicate
116data item could be leaked when the item was deleted. [#2912]
117
118</ol>
119<h3>Hash Access Method Changes:</h3>
120<ol>
121
122<li>Fix a bug where cursors in the parent of a nested transaction could
123be incorrectly adjusted after a child transaction was aborted. [#2373]
124<li>Fix a bug in which cursor gets performed on deleted items could
125return EINVAL instead of the correct DB_KEYEMPTY. [#2596]
126<li>Fix a bug where the verifier could falsely report errors when new
127hash pages were allocated in an aborted transaction. [#2577]
128<li>Fix a bug where hash recovery roll-forward log contains a abort and
129then re-do of a hash table double. [#2599]
130<li>Fix a bug in hash recovery roll-forward that could cause database
131corruption. [#2602]
132<li>Fix a bug where sizes could be miscalculated when adding duplicate
133records. [#2611]
134<li>Fix a bug in which a Hash insert could result in a misplaced
135item or an application crash. [#2842]
136<li>Fix a memory leak in Hash which could cause salvaging of Hash
137databases to waste an amount of memory roughly equal to database size. [#2869]
138<li>Fix a bug in which a failed attempt to put a duplicate duplicate
139item could result in a corrupted database. [#2996]
140<li>Fix a bug in which databases upgraded from version 2.X could
141become corrupted by the upgrade process. [#3061]
142<li>Fix a bug in which verifying a Hash database with the DB_ORDERCHKONLY
143flag could fail. [#3061]
144
145</ol>
146<h3>Queue Access Method Changes:</h3>
147<ol>
148
149<li>Fix a bug in which a (possibly nonsense) record number was returned
150when a queue insertion failed. [#2634]
151<li>Add support for circular queues: when UINT32_T_MAX records have
152been added using DB_APPEND, wrap around to record number 1. [#2829]
153<li>Fix a bug where the DB-&gt;stat method incorrectly marked the
154metadata page clean. [#3092]
155
156</ol>
157<h3>Recno Access Method Changes:</h3>
158<ol>
159
160<li>Fix a bug where cursors in the parent of a nested transaction could
161be incorrectly adjusted after a child transaction was aborted. [#2373,#2490]
162<li>Fix a bug in which a failure during the open of a Recno database could
163result in application crashes. [#2687]
164<li>Change the Recno statistics to not count logically deleted data
165items in Recno trees with immutable record numbers. [#2629]
166<li>Fix a bug in which overflow pages in Recno databases
167might not be properly counted by DB-&gt;stat. [#2911]
168<li>Change the Recno backing source file implementation to use stdio
169and not memory map the files. [#3076]
170<li>Fix a bug where writing new records past the end of the source text
171file when the entire file hadn't been read failed. [#3276]
172
173</ol>
174<h3>C++ API Changes:</h3>
175<ol>
176
177<li>Fix a bug where calling the Db::remove() method could crash the application. [#2665]
178<li>Stop supporting "reopens" of Db/DbEnv objects in C++, fix API memory
179leaks. [#2783, #2344]
180
181</ol>
182<h3>Java API Changes:</h3>
183<ol>
184
185<li>Java now supports the Db-&gt;set_bt_compare, Db-&gt;set_bt_prefix
186Db-&gt;set_h_hash and DbEnv-&gt;set_tx_recover methods, allowing Java
187applications to specify alternate Btree comparison and prefix methods,
188Hash hashing method and application-specific recovery. [#2179]
189<li>Remove unnecessary local allocation routine setting in Java API. [#2510]
190<li>Fix a bug where the Db.DB_CACHED_COUNTS flag was not properly defined in Java. [#2568]
191<li>Fix a bug where certain DB error returns did not display the correct db_strerror text. [#2679]
192<li>Db.rename, Db.remove, DbEnv.remove now throw
193java.io.FileNotFoundException. [#2320]
194<li>Stop supporting "reopens" of Db/DbEnv objects in Java, fix API
195memory leaks. [#2320]
196
197</ol>
198<h3>Tcl API Changes:</h3>
199<ol>
200
201<li>Fix a bug where closing a Tcl environment handle (when the environment
202included open database handles), the open database handles would be
203discarded and the underlying Berkeley DB resources leaked. [#2325]
204
205</ol>
206<h3>RPC Client/Server Changes:</h3>
207
208<blockquote>None.</blockquote>
209
210<h3>XA Resource Manager Changes:</h3>
211<ol>
212
213<li>Fix a bug in which updates could be performed on behalf of the
214wrong XA transaction. [#2650]
215
216</ol>
217<h3>Locking Subsystem Changes:</h3>
218<ol>
219
220<li>Change the locking subsystem to guarantee that if any request for
221a lock fails, the off field is set to LOCK_INVALID, parts of Berkeley
222DB reasonably depend on this, and it fixes a potential uninitialized
223memory read in Btree root page processing. [#2364]
224
225</ol>
226<h3>Logging Subsystem Changes:</h3>
227<ol>
228
229<li>Fix a bug where an error message was written out if the log_get()
230interface was called and the supplied DBT included the DB_USERMEM flag,
231and there was insufficient space available for the log record. [#2243]
232
233</ol>
234<h3>Buffer Pool Subsystem Changes:</h3>
235<ol>
236
237<li>Avoid flushing the log for each buffer written during a transaction
238checkpoint. [#2287]
239<li>Fix a bug in which the "gbytes" parameter to the set_cachesize functions
240(and to set_cachesize directives in a DB_CONFIG file) was handled incorrectly.
241[#2685]
242<li>Fix a bug which could result in erratic behavior or application
243crashes during buffer pool open. [#2747]
244<li>Fix a bug in which statistics fields belonging to per-file structures
245were not returned when per-file statistics were not requested. [#3038]
246
247</ol>
248<h3>Transaction Subsystem Changes:</h3>
249<ol>
250
251<li>Rework child transaction structures on child commit in order to
252decrease transaction resource usage and ensure abort on error. [#2230] [#2489]
253<li>Display an error message if cursors opened within a transaction are
254still open at transaction commit/abort. [#2235]
255<li>Fix a bug where one abort path after a page allocation could lead to
256a corrupted free list. [#2464]
257<li>Fix bug that caused reference to potentially freed memory. [#2478]
258<li>Fix a bug in which recovery of the deletion of a file that had been
259later re-created with the same name could fail. [#2538]
260<li>Fix a bug where missing pages were handled incorrectly during
261overflow reference count recover. [#2556]
262<li>Fix a bug where recovery of a subdatabase metadata operation could fail. [#2502]
263<li>Change transaction checkpointing to render less likely a situation in which no checkpoint will ever complete because pages remain pinned. [#2569]
264<li>Fix a bug where recovery of a queue metadata operation could fail. [#2690]
265<li>Fix a bug where recovery of a DB_CONSUME operation in queue could fail. [#2698]
266<li>Fix a bug where recovery could fail if done twice without an intervening checkpoint after an unclean shut down. [#2918]
267<li>Fix a bug where an error on recovery could cause a core dump due
268to an incorrect number of arguments in a printf statement. [#2987]
269<li>Change transaction checkpointing so that checkpoints are no longer
270skipped if there are new log records in the log buffer but none which have
271been flushed to disk. [#2949]
272
273</ol>
274<h3>Utility Changes:</h3>
275<ol>
276
277<li>Fix a bug in which db_stat would print extraneous error messages
278when opening a file containing multiple databases. [#2565]
279<li>Fix a bug where db_dump would display keys as numeric strings even
280though data items were being displayed as hex pairs. [#2676]
281<li>Fix a bug where the wrong statistics value was displayed for the
282maximum locks ever requested. [#2979]
283<li>Remove mention of the "-a m" option to db_deadlock, it was never
284implemented. [#3082]
285
286</ol>
287<h3>Configuration, Documentation, Portability and Build Changes:</h3>
288<ol>
289
290<li>Support for MSVC 4 has been removed.
291<li>Add a --enable-umrw configuration option to mask harmless uninitialized
292memory reads/writes. [#2377]
293<li>Remove searching of non-standard directories for Tcl installation,
294search only /usr/local. [#2386]
295<li>Fix a bug where Win32 support did not accept colon as a device/path
296separator. [#2393]
297<li>Ensure that Tcl directory include files do not override Berkeley DB
298include files when building the Tcl API. [#2395]
299<li>Rename "try" variable something else for Compaq Tru64 UNIX 5.0a. [#2410]
300<li>Change the Reference Guide to list page name, not section name as
301the HTML title. [#2485]
302<li>Fix a bug where the DBT documentation incorrectly said that various
303flags were only used during key/data pair retrieval. [#2537]
304<li>Fix a bug where VxWorks applications were restricted to the use of one environment, and add support for DB_ENV-&gt;set_shm_key on VxWorks. [#2528]
305<li>Fix a bug where VxWorks applications incorrectly failed when trying
306to memory-map read-only database files. [#2570]
307<li>Add support in the MSVC project files to build statically on Windows. [#2554]
308<li>Fix a bug in which resolution of absolute pathnames in VxWorks was incorrect. [#2579]
309<li>Fix a bug in which file initialization was being incorrectly performed for temporary files that have not yet been physically instantiated on Windows/95 and /98. [#2341]
310<li>Enable large file support in Linux. [#2871]
311<li>Fix a compiler warning in the Solaris mutex code. [#2905]
312<li>Berkeley DB now works with the Cygwin tools.  You need at least DLL
313version 1.1.4.  Configure and build as you would on a Unix system.  Only
314static library builds are supported, no shared library support is
315included. [#2913]
316<li>Update BSD-style queue.h macros to avoid compilation problems
317on some versions of FreeBSD. [#2999]
318<li>Modify installation sequence such that the db_185.h header file is now
319only installed when --enable-compat185 was specified as an option to configure. [#3064]
320
321</ol>
322
323</body>
324</html>
325