An undocumented feature where configuration string case was ignored has been removed, and all configuration strings are now case-dependent. Applications may require modifications to resolve run-time errors.
The following changes are only applicable to applications loading extensions and/or using the WiredTiger extension functions described in WT_EXTENSION_API.
The signature of wiredtiger_extension_init has changed from (WT_SESSION *session, WT_EXTENSION_API *api) to (WT_CONNECTION *connection). As no WT_EXTENSION_API handle reference is passed to the function, the WT_CONNECTION::get_extension_api has been added to support retrieval of the extension API. Applications may require modifications.
The type of all configuration arguments to extension methods has changed from "const char *" to "WT_CONFIG_ARG *", and the WT_EXTENSION::config method added to support configuration parsing; applications may require modifications.
The undocumented wiredtiger_XXX defines for WT_EXTENSION_API extension methods have been removed from the wiredtiger_ext.h include file; applications should instead use the method handles referenced by the WT_EXTENSION_API handle to call extension functions.
The extension API methods have all changed to require an additional parameter, the WT_EXTENSION_API method handle; applications may require modifications.
The following changes are only applicable to applications providing new implementations of the WiredTiger WT_DATA_SOURCE class.
The WT_DATA_SOURCE class has three new methods: WT_DATA_SOURCE::compact, WT_DATA_SOURCE::salvage, and WT_DATA_SOURCE::verify; applications may require modifications to resolve compile errors.
The owner argument to the WT_DATA_SOURCE::open_cursor method has been removed; applications may require modifications to resolve compile errors.
exclusive argument to the WT_DATA_SOURCE::create method has been removed; applications may require modifications to resolve compile errors. WiredTiger statistics are no longer maintained by default; to configure statistics, use the statistics configuration string to the wiredtiger_open function.
A new member, WT_COMPRESSOR::compress_raw, was added to the WT_COMPRESSOR extension API. Applications using the WT_COMPRESSOR extension API should add a NULL as the second field of that structure.
The WT_SESSION::create method's checksum configuration string has been changed from a boolean type to a string type. Applications using the checksum configuration string should change a value of true to the string on, and a value of false to the string off or the string uncompressed.
The underlying file formats changed in the 1.3.9 release; tables and files should be dumped and re-loaded into a new database.
The statistics key constants have been renamed to use all capitals, and use consistent prefixes to distinguish between connection statistics and statistics for data sources.
The installed WiredTiger extension library names changed to limit namespace pollution:
| Library | Previous Name | New Name |
|---|---|---|
| Bzip2 compression | bzip2_compress.a | libwiredtiger_bzip2.a |
| bzip2_compress.la | libwiredtiger_bzip2.la | |
| bzip2_compress.so | libwiredtiger_bzip2.so | |
| Snappy compression | snappy_compress.a | libwiredtiger_snappy.a |
| snappy_compress.la | libwiredtiger_snappy.la | |
| snappy_compress.so | libwiredtiger_snappy.so | |
| No-op compression | nop_compress.a | No longer installed |
| nop_compress.la | No longer installed | |
| nop_compress.so | No longer installed | |
| Reverse order collator | reverse_collator.a | No longer installed |
| reverse_collator.la | No longer installed | |
| reverse_collator.so | No longer installed |
The built-in compression name arguments to the WT_SESSION:create block_compressor configuration string changed for consistency:
| Extension | Previous Name | New Name |
|---|---|---|
| Bzip2 compression | "bzip2_compress" | "bzip2" |
| Snappy compression | "snappy_compress" | "snappy" |
The underlying file formats changed in the 1.3.5 release; tables and files should be dumped and re-loaded into a new database.
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.
-s options to the dump and list commands for the wt command line utility have been renamed to be -c. 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.
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.
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.
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.
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.
The underlying file formats changed in the 1.3 release; tables and files should be dumped and re-loaded into a new database.