1<!--$Id: renumber.so,v 1.4 2001/05/05 01:49:34 bostic Exp $--> 2<!--Copyright (c) 1997,2008 Oracle. All rights reserved.--> 3<!--See the file LICENSE for redistribution information.--> 4<html> 5<head> 6<title>Berkeley DB Reference Guide: Release 3.2: Logically renumbering records</title> 7<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> 8<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++"> 9</head> 10<body bgcolor=white> 11<table width="100%"><tr valign=top> 12<td><b><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></b></td> 13<td align=right><a href="/upgrade.3.2/callback.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/upgrade.3.2/incomplete.html"><img src="/images/next.gif" alt="Next"></a> 14</td></tr></table> 15<p align=center><b>Release 3.2: Logically renumbering records</b></p> 16<p>In the Berkeley DB 3.2 release, cursor adjustment semantics changed for Recno 17databases with mutable record numbers. Before the 3.2 release, cursors 18were adjusted to point to the previous or next record at the time the 19record to which the cursor referred was deleted. This could lead to 20unexpected behaviors. For example, two cursors referring to sequential 21records that were both deleted would lose their relationship to each 22other and would refer to the same position in the database instead of 23their original sequential relationship. There were also command 24sequences that would have unexpected results. For example, DB_AFTER 25and DB_BEFORE cursor put operations, using a cursor previously used to 26delete an item, would perform the put relative to the cursor's adjusted 27position and not its original position.</p> 28<p>In the Berkeley DB 3.2 release, cursors maintain their position in the tree 29regardless of deletion operations using the cursor. Applications that 30perform database operations, using cursors previously used to delete 31entries in Recno databases with mutable record numbers, should be 32evaluated to ensure that the new semantics do not cause application 33failure.</p> 34<table width="100%"><tr><td><br></td><td align=right><a href="/upgrade.3.2/callback.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/upgrade.3.2/incomplete.html"><img src="/images/next.gif" alt="Next"></a> 35</td></tr></table> 36<p><font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font> 37</body> 38</html> 39