Version 1.3.0
Upgrading WiredTiger applications

Upgrading to Version 1.3

Checkpoint and Snapshot

The checkpoint functionality supported by WT_SESSION::checkpoint and the snapshot functionality supported by WT_SESSION::sync have been merged into a single piece of functionality.

  • WT_SESSION.checkpoint
    The WT_SESSION::checkpoint method's snapshot configuration string has been renamed to name. The name assigned to checkpoints without a specified name configuration is now "WiredTigerCheckpoint".

  • WT_SESSION.drop
    In releases before 1.3, the WT_SESSION::drop method was used to delete snapshots. In 1.3, the functionality of deleting snapshots has been moved to the WT_SESSION::checkpoint method, specifically, snapshots are discarded using the WT_SESSION::checkpoint method's drop configuration string.

  • WT_SESSION.sync
    The WT_SESSION::sync method has been removed from the 1.3 release; the functionality of creating an object snapshot has moved to the WT_SESSION::checkpoint method, specifically, creating a snapshot of a one or more objects is done using the WT_SESSION::checkpoint method's target configuration string.

  • wt drop -s
    The -s option to the drop command for the wt command line utility has been removed, and object snapshots may no longer be removed from the command line.

  • wt dump, list -s
    The -s options to the dump and list commands for the wt command line utility have been renamed to be -c.

WT_SESSION.open_cursor

In releases before 1.3, the WT_SESSION::open_cursor method could duplicate cursors that were not positioned in an object; in 1.3, a cursor must be positioned in order to be duplicated.

Transactional cursors

In releases before 1.3, ending a transaction by calling the WT_SESSION::commit_transaction or WT_SESSION::rollback_transaction methods implicitly closed all open cursors; in 1.3, the cursors remain open, but are reset (discarding their positions and cursor values). This means applications must change to either close cursors explicitly, or rely on an eventual WT_SESSION::close or WT_CONNECTION::close methods to implicitly close open cursors.

Default transactional isolation level

In releases before 1.3, the default isolation level for transaction was snapshot, and the default isolation level for non-transaction operations was read-uncommitted; in 1.3, the default isolation level for all operations is read-committed.

The default can be overridden for a session using the isolation setting in WT_CONNECTION::open_cursor.

WT_SESSION.truncate

In releases before 1.3, the WT_SESSION::truncate method required cursors used for truncation of a cursor range to reference existing keys in the object; in 1.3, the WT_SESSION::truncate method has been changed to allow cursors to reference any valid key in the object's name space so applications may discard portions of the object name space without knowing exactly what records the object contains.

WT_CURSOR.equals

In releases before 1.3, the WT_CURSOR::equals method returned zero/non-zero to indicate cursor equality; in 1.3, the WT_CURSOR::equals method has been replaced with WT_CURSOR::compare, which compares two cursors and returns a cursor comparison status (less than 0, equal to 0, or greater than 0) depending on the cursors' key order.

Version 1.3 file format changes

The underlying file formats changed in the 1.3 release; tables and files should be dumped and re-loaded into a new database.