WiredTiger: WiredTiger API

| Version 3.1.0

Fork me on GitHub Join my user group
Classes | Macros | Enumerations | Functions
WiredTiger API

The functions, handles and methods applications use to access and manage data with WiredTiger. More...

## Classes
struct | WT_ITEM
| A raw item of data to be managed, including a pointer to the data and a length. More...
struct | WT_MODIFY
| A set of modifications for a value, including a pointer to new data and a length, plus a target offset in the value and an optional length of data in the value to be replaced. More...
struct | WT_CURSOR
| A WT_CURSOR handle is the interface to a cursor. More...
struct | WT_ASYNC_OP
| A WT_ASYNC_OP handle is the interface to an asynchronous operation. More...
struct | WT_SESSION
| All data operations are performed in the context of a WT_SESSION. More...
struct | WT_CONNECTION
| A connection to a WiredTiger database. More...
struct | WT_ASYNC_CALLBACK
| The interface implemented by applications to accept notifications of the completion of asynchronous operations. More...
struct | WT_EVENT_HANDLER
| The interface implemented by applications to handle error, informational and progress messages. More...
struct | WT_CONFIG_ITEM
| The configuration information returned by the WiredTiger configuration parsing functions in the WT_EXTENSION_API and the public API. More...
struct | WT_CONFIG_PARSER
| A handle that can be used to search and traverse configuration strings compatible with WiredTiger APIs. More...

## Macros
#define | WT_INTPACK64_MAXSIZE
| The maximum packed size of a 64-bit integer. More...
#define | WT_INTPACK32_MAXSIZE
| The maximum packed size of a 32-bit integer. More...

## Enumerations
enum | WT_ASYNC_OPTYPE { WT_AOP_NONE, WT_AOP_COMPACT, WT_AOP_INSERT, WT_AOP_REMOVE, WT_AOP_SEARCH, WT_AOP_UPDATE }
| Asynchronous operation types. More...

## Functions
int | wiredtiger_open (const char *home, WT_EVENT_HANDLER *event_handler, const char *config, WT_CONNECTION **connectionp)
| Open a connection to a database. More...
const char * | wiredtiger_strerror (int error)
| Return information about a WiredTiger error as a string (see WT_SESSION::strerror for a thread-safe API). More...
const char * | wiredtiger_version (int *majorp, int *minorp, int *patchp)
| Get version information. More...

## Data packing and unpacking
typedef struct __wt_pack_stream | WT_PACK_STREAM
| Streaming interface to packing. More...
int | wiredtiger_struct_pack (WT_SESSION *session, void *buffer, size_t len, const char *format,...)
| Pack a structure into a buffer. More...
int | wiredtiger_struct_size (WT_SESSION *session, size_t *lenp, const char *format,...)
| Calculate the size required to pack a structure. More...
int | wiredtiger_struct_unpack (WT_SESSION *session, const void *buffer, size_t len, const char *format,...)
| Unpack a structure from a buffer. More...
int | wiredtiger_pack_start (WT_SESSION *session, const char *format, void *buffer, size_t size, WT_PACK_STREAM **psp)
| Start a packing operation into a buffer with the given format string. More...
int | wiredtiger_unpack_start (WT_SESSION *session, const char *format, const void *buffer, size_t size, WT_PACK_STREAM **psp)
| Start an unpacking operation from a buffer with the given format string. More...
int | wiredtiger_pack_close (WT_PACK_STREAM *ps, size_t *usedp)
| Close a packing stream. More...
int | wiredtiger_pack_item (WT_PACK_STREAM *ps, WT_ITEM *item)
| Pack an item into a packing stream. More...
int | wiredtiger_pack_int (WT_PACK_STREAM *ps, int64_t i)
| Pack a signed integer into a packing stream. More...
int | wiredtiger_pack_str (WT_PACK_STREAM *ps, const char *s)
| Pack a string into a packing stream. More...
int | wiredtiger_pack_uint (WT_PACK_STREAM *ps, uint64_t u)
| Pack an unsigned integer into a packing stream. More...
int | wiredtiger_unpack_item (WT_PACK_STREAM *ps, WT_ITEM *item)
| Unpack an item from a packing stream. More...
int | wiredtiger_unpack_int (WT_PACK_STREAM *ps, int64_t *ip)
| Unpack a signed integer from a packing stream. More...
int | wiredtiger_unpack_str (WT_PACK_STREAM *ps, const char **sp)
| Unpack a string from a packing stream. More...
int | wiredtiger_unpack_uint (WT_PACK_STREAM *ps, uint64_t *up)
| Unpack an unsigned integer from a packing stream. More...

## Configuration strings
int | wiredtiger_config_parser_open (WT_SESSION *session, const char *config, size_t len, WT_CONFIG_PARSER **config_parserp)
| Create a handle that can be used to parse or create configuration strings compatible with WiredTiger APIs. More...

## Support functions
uint32_t | wiredtiger_checksum_crc32c (const void *buffer, size_t len)
| Return a buffer's CRC32C checksum. More...

## Error returns
Most functions and methods in WiredTiger return an integer code indicating whether the operation succeeded or failed. A return of zero indicates success, all non-zero return values indicate some kind of failure. WiredTiger reserves all values from -31,800 to -31,999 as possible error return values. WiredTiger may also return C99/POSIX error codes such as `ENOMEM`, `EINVAL` and `ENOTSUP`, with the usual meanings. The following are all of the WiredTiger-specific error returns:
#define | WT_ROLLBACK
| Conflict between concurrent operations. More...
#define | WT_DUPLICATE_KEY
| Attempt to insert an existing key. More...
#define | WT_ERROR
| Non-specific WiredTiger error. More...
#define | WT_NOTFOUND
| Item not found. More...
#define | WT_PANIC
| WiredTiger library panic. More...
#define | WT_RUN_RECOVERY
| Recovery must be run to continue. More...
#define | WT_CACHE_FULL
| Operation would overflow cache. More...
#define | WT_PREPARE_CONFLICT
| Conflict with a prepared update. More...

## Log record and operation types
#define | WT_LOGREC_CHECKPOINT
| checkpoint
#define | WT_LOGREC_COMMIT
| transaction commit
#define | WT_LOGREC_FILE_SYNC
| file sync
#define | WT_LOGREC_MESSAGE
| message
#define | WT_LOGREC_SYSTEM
| system/internal record
#define | WT_LOGOP_INVALID
| invalid operation
#define | WT_LOGOP_COL_PUT
| column-store put
#define | WT_LOGOP_COL_REMOVE
| column-store remove
#define | WT_LOGOP_COL_TRUNCATE
| column-store truncate
#define | WT_LOGOP_ROW_PUT
| row-store put
#define | WT_LOGOP_ROW_REMOVE
| row-store remove
#define | WT_LOGOP_ROW_TRUNCATE
| row-store truncate
#define | WT_LOGOP_CHECKPOINT_START
| checkpoint start
#define | WT_LOGOP_PREV_LSN
| previous LSN
#define | WT_LOGOP_COL_MODIFY
| column-store modify
#define | WT_LOGOP_ROW_MODIFY
| row-store modify

## Connection statistics
Statistics are accessed through cursors with `"statistics:"` URIs. Individual statistics can be queried through the cursor using the following keys. See Statistics Data for more information.
#define | WT_STAT_CONN_LSM_WORK_QUEUE_APP
| LSM: application work units currently queued.
#define | WT_STAT_CONN_LSM_WORK_QUEUE_MANAGER
| LSM: merge work units currently queued.
#define | WT_STAT_CONN_LSM_ROWS_MERGED
| LSM: rows merged in an LSM tree.
#define | WT_STAT_CONN_LSM_CHECKPOINT_THROTTLE
| LSM: sleep for LSM checkpoint throttle.
#define | WT_STAT_CONN_LSM_MERGE_THROTTLE
| LSM: sleep for LSM merge throttle.
#define | WT_STAT_CONN_LSM_WORK_QUEUE_SWITCH
| LSM: switch work units currently queued.
#define | WT_STAT_CONN_LSM_WORK_UNITS_DISCARDED
| LSM: tree maintenance operations discarded.
#define | WT_STAT_CONN_LSM_WORK_UNITS_DONE
| LSM: tree maintenance operations executed.
#define | WT_STAT_CONN_LSM_WORK_UNITS_CREATED
| LSM: tree maintenance operations scheduled.
#define | WT_STAT_CONN_LSM_WORK_QUEUE_MAX
| LSM: tree queue hit maximum.
#define | WT_STAT_CONN_ASYNC_CUR_QUEUE
| async: current work queue length
#define | WT_STAT_CONN_ASYNC_MAX_QUEUE
| async: maximum work queue length
#define | WT_STAT_CONN_ASYNC_ALLOC_RACE
| async: number of allocation state races
#define | WT_STAT_CONN_ASYNC_FLUSH
| async: number of flush calls
#define | WT_STAT_CONN_ASYNC_ALLOC_VIEW
| async: number of operation slots viewed for allocation
#define | WT_STAT_CONN_ASYNC_FULL
| async: number of times operation allocation failed
#define | WT_STAT_CONN_ASYNC_NOWORK
| async: number of times worker found no work
#define | WT_STAT_CONN_ASYNC_OP_ALLOC
| async: total allocations
#define | WT_STAT_CONN_ASYNC_OP_COMPACT
| async: total compact calls
#define | WT_STAT_CONN_ASYNC_OP_INSERT
| async: total insert calls
#define | WT_STAT_CONN_ASYNC_OP_REMOVE
| async: total remove calls
#define | WT_STAT_CONN_ASYNC_OP_SEARCH
| async: total search calls
#define | WT_STAT_CONN_ASYNC_OP_UPDATE
| async: total update calls
#define | WT_STAT_CONN_BLOCK_PRELOAD
| block-manager: blocks pre-loaded
#define | WT_STAT_CONN_BLOCK_READ
| block-manager: blocks read
#define | WT_STAT_CONN_BLOCK_WRITE
| block-manager: blocks written
#define | WT_STAT_CONN_BLOCK_BYTE_READ
| block-manager: bytes read
#define | WT_STAT_CONN_BLOCK_BYTE_WRITE
| block-manager: bytes written
#define | WT_STAT_CONN_BLOCK_BYTE_WRITE_CHECKPOINT
| block-manager: bytes written for checkpoint
#define | WT_STAT_CONN_BLOCK_MAP_READ
| block-manager: mapped blocks read
#define | WT_STAT_CONN_BLOCK_BYTE_MAP_READ
| block-manager: mapped bytes read
#define | WT_STAT_CONN_CACHE_READ_APP_COUNT
| cache: application threads page read from disk to cache count
#define | WT_STAT_CONN_CACHE_READ_APP_TIME
| cache: application threads page read from disk to cache time (usecs)
#define | WT_STAT_CONN_CACHE_WRITE_APP_COUNT
| cache: application threads page write from cache to disk count
#define | WT_STAT_CONN_CACHE_WRITE_APP_TIME
| cache: application threads page write from cache to disk time (usecs)
#define | WT_STAT_CONN_CACHE_BYTES_IMAGE
| cache: bytes belonging to page images in the cache
#define | WT_STAT_CONN_CACHE_BYTES_LOOKASIDE
| cache: bytes belonging to the lookaside table in the cache
#define | WT_STAT_CONN_CACHE_BYTES_INUSE
| cache: bytes currently in the cache
#define | WT_STAT_CONN_CACHE_BYTES_OTHER
| cache: bytes not belonging to page images in the cache
#define | WT_STAT_CONN_CACHE_BYTES_READ
| cache: bytes read into cache
#define | WT_STAT_CONN_CACHE_BYTES_WRITE
| cache: bytes written from cache
#define | WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT
| cache: checkpoint blocked page eviction
#define | WT_STAT_CONN_CACHE_EVICTION_GET_REF
| cache: eviction calls to get a page
#define | WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY
| cache: eviction calls to get a page found queue empty
#define | WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2
| cache: eviction calls to get a page found queue empty after locking
#define | WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET
| cache: eviction currently operating in aggressive mode
#define | WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE
| cache: eviction empty score
#define | WT_STAT_CONN_CACHE_EVICTION_WALK_PASSES
| cache: eviction passes of a file
#define | WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY
| cache: eviction server candidate queue empty when topping up
#define | WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY
| cache: eviction server candidate queue not empty when topping up
#define | WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING
| cache: eviction server evicting pages
#define | WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT
| cache: eviction server slept, because we did not make progress with eviction
#define | WT_STAT_CONN_CACHE_EVICTION_SLOW
| cache: eviction server unable to reach eviction goal
#define | WT_STAT_CONN_CACHE_EVICTION_STATE
| cache: eviction state
#define | WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10
| cache: eviction walk target pages histogram - 0-9
#define | WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32
| cache: eviction walk target pages histogram - 10-31
#define | WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128
| cache: eviction walk target pages histogram - 128 and higher
#define | WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64
| cache: eviction walk target pages histogram - 32-63
#define | WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128
| cache: eviction walk target pages histogram - 64-128
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED
| cache: eviction walks abandoned
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED
| cache: eviction walks gave up because they restarted their walk twice
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS
| cache: eviction walks gave up because they saw too many pages and found no candidates
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO
| cache: eviction walks gave up because they saw too many pages and found too few candidates
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED
| cache: eviction walks reached end of tree
#define | WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT
| cache: eviction walks started from root of tree
#define | WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS
| cache: eviction walks started from saved location in tree
#define | WT_STAT_CONN_CACHE_EVICTION_ACTIVE_WORKERS
| cache: eviction worker thread active
#define | WT_STAT_CONN_CACHE_EVICTION_WORKER_CREATED
| cache: eviction worker thread created
#define | WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING
| cache: eviction worker thread evicting pages
#define | WT_STAT_CONN_CACHE_EVICTION_WORKER_REMOVED
| cache: eviction worker thread removed
#define | WT_STAT_CONN_CACHE_EVICTION_STABLE_STATE_WORKERS
| cache: eviction worker thread stable number
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL
| cache: failed eviction of pages that exceeded the in-memory maximum count
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL_TIME
| cache: failed eviction of pages that exceeded the in-memory maximum time (usecs)
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE
| cache: files with active eviction walks
#define | WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED
| cache: files with new eviction walks started
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_RETUNE
| cache: force re-tuning of eviction workers once in a while
#define | WT_STAT_CONN_CACHE_EVICTION_HAZARD
| cache: hazard pointer blocked page eviction
#define | WT_STAT_CONN_CACHE_HAZARD_CHECKS
| cache: hazard pointer check calls
#define | WT_STAT_CONN_CACHE_HAZARD_WALKS
| cache: hazard pointer check entries walked
#define | WT_STAT_CONN_CACHE_HAZARD_MAX
| cache: hazard pointer maximum array length
#define | WT_STAT_CONN_CACHE_INMEM_SPLITTABLE
| cache: in-memory page passed criteria to be split
#define | WT_STAT_CONN_CACHE_INMEM_SPLIT
| cache: in-memory page splits
#define | WT_STAT_CONN_CACHE_EVICTION_INTERNAL
| cache: internal pages evicted
#define | WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL
| cache: internal pages split during eviction
#define | WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF
| cache: leaf pages split during eviction
#define | WT_STAT_CONN_CACHE_LOOKASIDE_SCORE
| cache: lookaside score
#define | WT_STAT_CONN_CACHE_LOOKASIDE_ENTRIES
| cache: lookaside table entries
#define | WT_STAT_CONN_CACHE_LOOKASIDE_INSERT
| cache: lookaside table insert calls
#define | WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE
| cache: lookaside table remove calls
#define | WT_STAT_CONN_CACHE_BYTES_MAX
| cache: maximum bytes configured
#define | WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE
| cache: maximum page size at eviction
#define | WT_STAT_CONN_CACHE_EVICTION_DIRTY
| cache: modified pages evicted
#define | WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY
| cache: modified pages evicted by application threads
#define | WT_STAT_CONN_CACHE_READ_OVERFLOW
| cache: overflow pages read into cache
#define | WT_STAT_CONN_CACHE_EVICTION_DEEPEN
| cache: page split during eviction deepened the tree
#define | WT_STAT_CONN_CACHE_WRITE_LOOKASIDE
| cache: page written requiring lookaside records
#define | WT_STAT_CONN_CACHE_PAGES_INUSE
| cache: pages currently held in the cache
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE
| cache: pages evicted because they exceeded the in-memory maximum count
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_TIME
| cache: pages evicted because they exceeded the in-memory maximum time (usecs)
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE
| cache: pages evicted because they had chains of deleted items count
#define | WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE_TIME
| cache: pages evicted because they had chains of deleted items time (usecs)
#define | WT_STAT_CONN_CACHE_EVICTION_APP
| cache: pages evicted by application threads
#define | WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED
| cache: pages queued for eviction
#define | WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT
| cache: pages queued for urgent eviction
#define | WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST
| cache: pages queued for urgent eviction during walk
#define | WT_STAT_CONN_CACHE_READ
| cache: pages read into cache
#define | WT_STAT_CONN_CACHE_READ_DELETED
| cache: pages read into cache after truncate
#define | WT_STAT_CONN_CACHE_READ_DELETED_PREPARED
| cache: pages read into cache after truncate in prepare state
#define | WT_STAT_CONN_CACHE_READ_LOOKASIDE
| cache: pages read into cache requiring lookaside entries
#define | WT_STAT_CONN_CACHE_READ_LOOKASIDE_CHECKPOINT
| cache: pages read into cache requiring lookaside for checkpoint
#define | WT_STAT_CONN_CACHE_READ_LOOKASIDE_SKIPPED
| cache: pages read into cache skipping older lookaside entries
#define | WT_STAT_CONN_CACHE_READ_LOOKASIDE_DELAY
| cache: pages read into cache with skipped lookaside entries needed later
#define | WT_STAT_CONN_CACHE_READ_LOOKASIDE_DELAY_CHECKPOINT
| cache: pages read into cache with skipped lookaside entries needed later by checkpoint
#define | WT_STAT_CONN_CACHE_PAGES_REQUESTED
| cache: pages requested from the cache
#define | WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN
| cache: pages seen by eviction walk
#define | WT_STAT_CONN_CACHE_EVICTION_FAIL
| cache: pages selected for eviction unable to be evicted
#define | WT_STAT_CONN_CACHE_EVICTION_WALK
| cache: pages walked for eviction
#define | WT_STAT_CONN_CACHE_WRITE
| cache: pages written from cache
#define | WT_STAT_CONN_CACHE_WRITE_RESTORE
| cache: pages written requiring in-memory restoration
#define | WT_STAT_CONN_CACHE_OVERHEAD
| cache: percentage overhead
#define | WT_STAT_CONN_CACHE_BYTES_INTERNAL
| cache: tracked bytes belonging to internal pages in the cache
#define | WT_STAT_CONN_CACHE_BYTES_LEAF
| cache: tracked bytes belonging to leaf pages in the cache
#define | WT_STAT_CONN_CACHE_BYTES_DIRTY
| cache: tracked dirty bytes in the cache
#define | WT_STAT_CONN_CACHE_PAGES_DIRTY
| cache: tracked dirty pages in the cache
#define | WT_STAT_CONN_CACHE_EVICTION_CLEAN
| cache: unmodified pages evicted
#define | WT_STAT_CONN_COND_AUTO_WAIT_RESET
| connection: auto adjusting condition resets
#define | WT_STAT_CONN_COND_AUTO_WAIT
| connection: auto adjusting condition wait calls
#define | WT_STAT_CONN_TIME_TRAVEL
| connection: detected system time went backwards
#define | WT_STAT_CONN_FILE_OPEN
| connection: files currently open
#define | WT_STAT_CONN_MEMORY_ALLOCATION
| connection: memory allocations
#define | WT_STAT_CONN_MEMORY_FREE
| connection: memory frees
#define | WT_STAT_CONN_MEMORY_GROW
| connection: memory re-allocations
#define | WT_STAT_CONN_COND_WAIT
| connection: pthread mutex condition wait calls
#define | WT_STAT_CONN_RWLOCK_READ
| connection: pthread mutex shared lock read-lock calls
#define | WT_STAT_CONN_RWLOCK_WRITE
| connection: pthread mutex shared lock write-lock calls
#define | WT_STAT_CONN_FSYNC_IO
| connection: total fsync I/Os
#define | WT_STAT_CONN_READ_IO
| connection: total read I/Os
#define | WT_STAT_CONN_WRITE_IO
| connection: total write I/Os
#define | WT_STAT_CONN_CURSOR_CREATE
| cursor: cursor create calls
#define | WT_STAT_CONN_CURSOR_INSERT
| cursor: cursor insert calls
#define | WT_STAT_CONN_CURSOR_MODIFY
| cursor: cursor modify calls
#define | WT_STAT_CONN_CURSOR_NEXT
| cursor: cursor next calls
#define | WT_STAT_CONN_CURSOR_PREV
| cursor: cursor prev calls
#define | WT_STAT_CONN_CURSOR_REMOVE
| cursor: cursor remove calls
#define | WT_STAT_CONN_CURSOR_RESERVE
| cursor: cursor reserve calls
#define | WT_STAT_CONN_CURSOR_RESET
| cursor: cursor reset calls
#define | WT_STAT_CONN_CURSOR_RESTART
| cursor: cursor restarted searches
#define | WT_STAT_CONN_CURSOR_SEARCH
| cursor: cursor search calls
#define | WT_STAT_CONN_CURSOR_SEARCH_NEAR
| cursor: cursor search near calls
#define | WT_STAT_CONN_CURSOR_SWEEP_BUCKETS
| cursor: cursor sweep buckets
#define | WT_STAT_CONN_CURSOR_SWEEP_CLOSED
| cursor: cursor sweep cursors closed
#define | WT_STAT_CONN_CURSOR_SWEEP_EXAMINED
| cursor: cursor sweep cursors examined
#define | WT_STAT_CONN_CURSOR_SWEEP
| cursor: cursor sweeps
#define | WT_STAT_CONN_CURSOR_UPDATE
| cursor: cursor update calls
#define | WT_STAT_CONN_CURSOR_CACHE
| cursor: cursors cached on close
#define | WT_STAT_CONN_CURSOR_REOPEN
| cursor: cursors reused from cache
#define | WT_STAT_CONN_CURSOR_TRUNCATE
| cursor: truncate calls
#define | WT_STAT_CONN_DH_CONN_HANDLE_COUNT
| data-handle: connection data handles currently active
#define | WT_STAT_CONN_DH_SWEEP_REF
| data-handle: connection sweep candidate became referenced
#define | WT_STAT_CONN_DH_SWEEP_CLOSE
| data-handle: connection sweep dhandles closed
#define | WT_STAT_CONN_DH_SWEEP_REMOVE
| data-handle: connection sweep dhandles removed from hash list
#define | WT_STAT_CONN_DH_SWEEP_TOD
| data-handle: connection sweep time-of-death sets
#define | WT_STAT_CONN_DH_SWEEPS
| data-handle: connection sweeps
#define | WT_STAT_CONN_DH_SESSION_HANDLES
| data-handle: session dhandles swept
#define | WT_STAT_CONN_DH_SESSION_SWEEPS
| data-handle: session sweep attempts
#define | WT_STAT_CONN_LOCK_CHECKPOINT_COUNT
| lock: checkpoint lock acquisitions
#define | WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION
| lock: checkpoint lock application thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL
| lock: checkpoint lock internal thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_COMMIT_TIMESTAMP_WAIT_APPLICATION
| lock: commit timestamp queue lock application thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_COMMIT_TIMESTAMP_WAIT_INTERNAL
| lock: commit timestamp queue lock internal thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_COMMIT_TIMESTAMP_READ_COUNT
| lock: commit timestamp queue read lock acquisitions
#define | WT_STAT_CONN_LOCK_COMMIT_TIMESTAMP_WRITE_COUNT
| lock: commit timestamp queue write lock acquisitions
#define | WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION
| lock: dhandle lock application thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL
| lock: dhandle lock internal thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT
| lock: dhandle read lock acquisitions
#define | WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT
| lock: dhandle write lock acquisitions
#define | WT_STAT_CONN_LOCK_METADATA_COUNT
| lock: metadata lock acquisitions
#define | WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION
| lock: metadata lock application thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL
| lock: metadata lock internal thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION
| lock: read timestamp queue lock application thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL
| lock: read timestamp queue lock internal thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT
| lock: read timestamp queue read lock acquisitions
#define | WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT
| lock: read timestamp queue write lock acquisitions
#define | WT_STAT_CONN_LOCK_SCHEMA_COUNT
| lock: schema lock acquisitions
#define | WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION
| lock: schema lock application thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL
| lock: schema lock internal thread wait time (usecs)
#define | WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION
| lock: table lock application thread time waiting for the table lock (usecs)
#define | WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL
| lock: table lock internal thread time waiting for the table lock (usecs)
#define | WT_STAT_CONN_LOCK_TABLE_READ_COUNT
| lock: table read lock acquisitions
#define | WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT
| lock: table write lock acquisitions
#define | WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION
| lock: txn global lock application thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL
| lock: txn global lock internal thread time waiting for the dhandle lock (usecs)
#define | WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT
| lock: txn global read lock acquisitions
#define | WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT
| lock: txn global write lock acquisitions
#define | WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY
| log: busy returns attempting to switch slots
#define | WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP
| log: force archive time sleeping (usecs)
#define | WT_STAT_CONN_LOG_BYTES_PAYLOAD
| log: log bytes of payload data
#define | WT_STAT_CONN_LOG_BYTES_WRITTEN
| log: log bytes written
#define | WT_STAT_CONN_LOG_ZERO_FILLS
| log: log files manually zero-filled
#define | WT_STAT_CONN_LOG_FLUSH
| log: log flush operations
#define | WT_STAT_CONN_LOG_FORCE_WRITE
| log: log force write operations
#define | WT_STAT_CONN_LOG_FORCE_WRITE_SKIP
| log: log force write operations skipped
#define | WT_STAT_CONN_LOG_COMPRESS_WRITES
| log: log records compressed
#define | WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS
| log: log records not compressed
#define | WT_STAT_CONN_LOG_COMPRESS_SMALL
| log: log records too small to compress
#define | WT_STAT_CONN_LOG_RELEASE_WRITE_LSN
| log: log release advances write LSN
#define | WT_STAT_CONN_LOG_SCANS
| log: log scan operations
#define | WT_STAT_CONN_LOG_SCAN_REREADS
| log: log scan records requiring two reads
#define | WT_STAT_CONN_LOG_WRITE_LSN
| log: log server thread advances write LSN
#define | WT_STAT_CONN_LOG_WRITE_LSN_SKIP
| log: log server thread write LSN walk skipped
#define | WT_STAT_CONN_LOG_SYNC
| log: log sync operations
#define | WT_STAT_CONN_LOG_SYNC_DURATION
| log: log sync time duration (usecs)
#define | WT_STAT_CONN_LOG_SYNC_DIR
| log: log sync_dir operations
#define | WT_STAT_CONN_LOG_SYNC_DIR_DURATION
| log: log sync_dir time duration (usecs)
#define | WT_STAT_CONN_LOG_WRITES
| log: log write operations
#define | WT_STAT_CONN_LOG_SLOT_CONSOLIDATED
| log: logging bytes consolidated
#define | WT_STAT_CONN_LOG_MAX_FILESIZE
| log: maximum log file size
#define | WT_STAT_CONN_LOG_PREALLOC_MAX
| log: number of pre-allocated log files to create
#define | WT_STAT_CONN_LOG_PREALLOC_MISSED
| log: pre-allocated log files not ready and missed
#define | WT_STAT_CONN_LOG_PREALLOC_FILES
| log: pre-allocated log files prepared
#define | WT_STAT_CONN_LOG_PREALLOC_USED
| log: pre-allocated log files used
#define | WT_STAT_CONN_LOG_SCAN_RECORDS
| log: records processed by log scan
#define | WT_STAT_CONN_LOG_SLOT_CLOSE_RACE
| log: slot close lost race
#define | WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF
| log: slot close unbuffered waits
#define | WT_STAT_CONN_LOG_SLOT_CLOSES
| log: slot closures
#define | WT_STAT_CONN_LOG_SLOT_RACES
| log: slot join atomic update races
#define | WT_STAT_CONN_LOG_SLOT_YIELD_RACE
| log: slot join calls atomic updates raced
#define | WT_STAT_CONN_LOG_SLOT_IMMEDIATE
| log: slot join calls did not yield
#define | WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE
| log: slot join calls found active slot closed
#define | WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP
| log: slot join calls slept
#define | WT_STAT_CONN_LOG_SLOT_YIELD
| log: slot join calls yielded
#define | WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED
| log: slot join found active slot closed
#define | WT_STAT_CONN_LOG_SLOT_YIELD_DURATION
| log: slot joins yield time (usecs)
#define | WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS
| log: slot transitions unable to find free slot
#define | WT_STAT_CONN_LOG_SLOT_UNBUFFERED
| log: slot unbuffered writes
#define | WT_STAT_CONN_LOG_COMPRESS_MEM
| log: total in-memory size of compressed records
#define | WT_STAT_CONN_LOG_BUFFER_SIZE
| log: total log buffer size
#define | WT_STAT_CONN_LOG_COMPRESS_LEN
| log: total size of compressed records
#define | WT_STAT_CONN_LOG_SLOT_COALESCED
| log: written slots coalesced
#define | WT_STAT_CONN_LOG_CLOSE_YIELDS
| log: yields waiting for previous log file close
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50
| perf: file system read latency histogram (bucket 1) - 10-49ms
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100
| perf: file system read latency histogram (bucket 2) - 50-99ms
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250
| perf: file system read latency histogram (bucket 3) - 100-249ms
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500
| perf: file system read latency histogram (bucket 4) - 250-499ms
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000
| perf: file system read latency histogram (bucket 5) - 500-999ms
#define | WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000
| perf: file system read latency histogram (bucket 6) - 1000ms+
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50
| perf: file system write latency histogram (bucket 1) - 10-49ms
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100
| perf: file system write latency histogram (bucket 2) - 50-99ms
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250
| perf: file system write latency histogram (bucket 3) - 100-249ms
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500
| perf: file system write latency histogram (bucket 4) - 250-499ms
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000
| perf: file system write latency histogram (bucket 5) - 500-999ms
#define | WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000
| perf: file system write latency histogram (bucket 6) - 1000ms+
#define | WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250
| perf: operation read latency histogram (bucket 1) - 100-249us
#define | WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500
| perf: operation read latency histogram (bucket 2) - 250-499us
#define | WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000
| perf: operation read latency histogram (bucket 3) - 500-999us
#define | WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000
| perf: operation read latency histogram (bucket 4) - 1000-9999us
#define | WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000
| perf: operation read latency histogram (bucket 5) - 10000us+
#define | WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250
| perf: operation write latency histogram (bucket 1) - 100-249us
#define | WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500
| perf: operation write latency histogram (bucket 2) - 250-499us
#define | WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000
| perf: operation write latency histogram (bucket 3) - 500-999us
#define | WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000
| perf: operation write latency histogram (bucket 4) - 1000-9999us
#define | WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000
| perf: operation write latency histogram (bucket 5) - 10000us+
#define | WT_STAT_CONN_REC_PAGE_DELETE_FAST
| reconciliation: fast-path pages deleted
#define | WT_STAT_CONN_REC_PAGES
| reconciliation: page reconciliation calls
#define | WT_STAT_CONN_REC_PAGES_EVICTION
| reconciliation: page reconciliation calls for eviction
#define | WT_STAT_CONN_REC_PAGE_DELETE
| reconciliation: pages deleted
#define | WT_STAT_CONN_REC_SPLIT_STASHED_BYTES
| reconciliation: split bytes currently awaiting free
#define | WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS
| reconciliation: split objects currently awaiting free
#define | WT_STAT_CONN_SESSION_CURSOR_OPEN
| session: open cursor count
#define | WT_STAT_CONN_SESSION_OPEN
| session: open session count
#define | WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL
| session: table alter failed calls
#define | WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS
| session: table alter successful calls
#define | WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP
| session: table alter unchanged and skipped
#define | WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL
| session: table compact failed calls
#define | WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS
| session: table compact successful calls
#define | WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL
| session: table create failed calls
#define | WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS
| session: table create successful calls
#define | WT_STAT_CONN_SESSION_TABLE_DROP_FAIL
| session: table drop failed calls
#define | WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS
| session: table drop successful calls
#define | WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL
| session: table rebalance failed calls
#define | WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS
| session: table rebalance successful calls
#define | WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL
| session: table rename failed calls
#define | WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS
| session: table rename successful calls
#define | WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL
| session: table salvage failed calls
#define | WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS
| session: table salvage successful calls
#define | WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL
| session: table truncate failed calls
#define | WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS
| session: table truncate successful calls
#define | WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL
| session: table verify failed calls
#define | WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS
| session: table verify successful calls
#define | WT_STAT_CONN_THREAD_FSYNC_ACTIVE
| thread-state: active filesystem fsync calls
#define | WT_STAT_CONN_THREAD_READ_ACTIVE
| thread-state: active filesystem read calls
#define | WT_STAT_CONN_THREAD_WRITE_ACTIVE
| thread-state: active filesystem write calls
#define | WT_STAT_CONN_APPLICATION_EVICT_TIME
| thread-yield: application thread time evicting (usecs)
#define | WT_STAT_CONN_APPLICATION_CACHE_TIME
| thread-yield: application thread time waiting for cache (usecs)
#define | WT_STAT_CONN_TXN_RELEASE_BLOCKED
| thread-yield: connection close blocked waiting for transaction state stabilization
#define | WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM
| thread-yield: connection close yielded for lsm manager shutdown
#define | WT_STAT_CONN_DHANDLE_LOCK_BLOCKED
| thread-yield: data handle lock yielded
#define | WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED
| thread-yield: get reference for page index and slot time sleeping (usecs)
#define | WT_STAT_CONN_LOG_SERVER_SYNC_BLOCKED
| thread-yield: log server sync yielded for log write
#define | WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE
| thread-yield: page access yielded due to prepare state change
#define | WT_STAT_CONN_PAGE_BUSY_BLOCKED
| thread-yield: page acquire busy blocked
#define | WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED
| thread-yield: page acquire eviction blocked
#define | WT_STAT_CONN_PAGE_LOCKED_BLOCKED
| thread-yield: page acquire locked blocked
#define | WT_STAT_CONN_PAGE_READ_BLOCKED
| thread-yield: page acquire read blocked
#define | WT_STAT_CONN_PAGE_SLEEP
| thread-yield: page acquire time sleeping (usecs)
#define | WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED
| thread-yield: page delete rollback time sleeping for state change (usecs)
#define | WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE
| thread-yield: page reconciliation yielded due to child modification
#define | WT_STAT_CONN_TXN_COMMIT_QUEUE_EMPTY
| transaction: commit timestamp queue insert to empty
#define | WT_STAT_CONN_TXN_COMMIT_QUEUE_TAIL
| transaction: commit timestamp queue inserts to tail
#define | WT_STAT_CONN_TXN_COMMIT_QUEUE_INSERTS
| transaction: commit timestamp queue inserts total
#define | WT_STAT_CONN_TXN_COMMIT_QUEUE_LEN
| transaction: commit timestamp queue length
#define | WT_STAT_CONN_TXN_SNAPSHOTS_CREATED
| transaction: number of named snapshots created
#define | WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED
| transaction: number of named snapshots dropped
#define | WT_STAT_CONN_TXN_PREPARE
| transaction: prepared transactions
#define | WT_STAT_CONN_TXN_PREPARE_COMMIT
| transaction: prepared transactions committed
#define | WT_STAT_CONN_TXN_PREPARE_ACTIVE
| transaction: prepared transactions currently active
#define | WT_STAT_CONN_TXN_PREPARE_ROLLBACK
| transaction: prepared transactions rolled back
#define | WT_STAT_CONN_TXN_QUERY_TS
| transaction: query timestamp calls
#define | WT_STAT_CONN_TXN_READ_QUEUE_EMPTY
| transaction: read timestamp queue insert to empty
#define | WT_STAT_CONN_TXN_READ_QUEUE_HEAD
| transaction: read timestamp queue inserts to head
#define | WT_STAT_CONN_TXN_READ_QUEUE_INSERTS
| transaction: read timestamp queue inserts total
#define | WT_STAT_CONN_TXN_READ_QUEUE_LEN
| transaction: read timestamp queue length
#define | WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE
| transaction: rollback to stable calls
#define | WT_STAT_CONN_TXN_ROLLBACK_UPD_ABORTED
| transaction: rollback to stable updates aborted
#define | WT_STAT_CONN_TXN_ROLLBACK_LAS_REMOVED
| transaction: rollback to stable updates removed from lookaside
#define | WT_STAT_CONN_TXN_SET_TS
| transaction: set timestamp calls
#define | WT_STAT_CONN_TXN_SET_TS_COMMIT
| transaction: set timestamp commit calls
#define | WT_STAT_CONN_TXN_SET_TS_COMMIT_UPD
| transaction: set timestamp commit updates
#define | WT_STAT_CONN_TXN_SET_TS_OLDEST
| transaction: set timestamp oldest calls
#define | WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD
| transaction: set timestamp oldest updates
#define | WT_STAT_CONN_TXN_SET_TS_STABLE
| transaction: set timestamp stable calls
#define | WT_STAT_CONN_TXN_SET_TS_STABLE_UPD
| transaction: set timestamp stable updates
#define | WT_STAT_CONN_TXN_BEGIN
| transaction: transaction begins
#define | WT_STAT_CONN_TXN_CHECKPOINT_RUNNING
| transaction: transaction checkpoint currently running
#define | WT_STAT_CONN_TXN_CHECKPOINT_GENERATION
| transaction: transaction checkpoint generation
#define | WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX
| transaction: transaction checkpoint max time (msecs)
#define | WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN
| transaction: transaction checkpoint min time (msecs)
#define | WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT
| transaction: transaction checkpoint most recent time (msecs)
#define | WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET
| transaction: transaction checkpoint scrub dirty target
#define | WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME
| transaction: transaction checkpoint scrub time (msecs)
#define | WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL
| transaction: transaction checkpoint total time (msecs)
#define | WT_STAT_CONN_TXN_CHECKPOINT
| transaction: transaction checkpoints
#define | WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED
| transaction: transaction checkpoints skipped because database was clean
#define | WT_STAT_CONN_TXN_FAIL_CACHE
| transaction: transaction failures due to cache overflow
#define | WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST
| transaction: transaction fsync calls for checkpoint after allocating the transaction ID
#define | WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION
| transaction: transaction fsync duration for checkpoint after allocating the transaction ID (usecs)
#define | WT_STAT_CONN_TXN_PINNED_RANGE
| transaction: transaction range of IDs currently pinned
#define | WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE
| transaction: transaction range of IDs currently pinned by a checkpoint
#define | WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE
| transaction: transaction range of IDs currently pinned by named snapshots
#define | WT_STAT_CONN_TXN_PINNED_TIMESTAMP
| transaction: transaction range of timestamps currently pinned
#define | WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST
| transaction: transaction range of timestamps pinned by the oldest timestamp
#define | WT_STAT_CONN_TXN_SYNC
| transaction: transaction sync calls
#define | WT_STAT_CONN_TXN_COMMIT
| transaction: transactions committed
#define | WT_STAT_CONN_TXN_ROLLBACK
| transaction: transactions rolled back
#define | WT_STAT_CONN_TXN_UPDATE_CONFLICT
| transaction: update conflicts

## Statistics for data sources
#define | WT_STAT_DSRC_BLOOM_FALSE_POSITIVE
| LSM: bloom filter false positives.
#define | WT_STAT_DSRC_BLOOM_HIT
| LSM: bloom filter hits.
#define | WT_STAT_DSRC_BLOOM_MISS
| LSM: bloom filter misses.
#define | WT_STAT_DSRC_BLOOM_PAGE_EVICT
| LSM: bloom filter pages evicted from cache.
#define | WT_STAT_DSRC_BLOOM_PAGE_READ
| LSM: bloom filter pages read into cache.
#define | WT_STAT_DSRC_BLOOM_COUNT
| LSM: bloom filters in the LSM tree.
#define | WT_STAT_DSRC_LSM_CHUNK_COUNT
| LSM: chunks in the LSM tree.
#define | WT_STAT_DSRC_LSM_GENERATION_MAX
| LSM: highest merge generation in the LSM tree.
#define | WT_STAT_DSRC_LSM_LOOKUP_NO_BLOOM
| LSM: queries that could have benefited from a Bloom filter that did not exist.
#define | WT_STAT_DSRC_LSM_CHECKPOINT_THROTTLE
| LSM: sleep for LSM checkpoint throttle.
#define | WT_STAT_DSRC_LSM_MERGE_THROTTLE
| LSM: sleep for LSM merge throttle.
#define | WT_STAT_DSRC_BLOOM_SIZE
| LSM: total size of bloom filters.
#define | WT_STAT_DSRC_BLOCK_EXTENSION
| block-manager: allocations requiring file extension
#define | WT_STAT_DSRC_BLOCK_ALLOC
| block-manager: blocks allocated
#define | WT_STAT_DSRC_BLOCK_FREE
| block-manager: blocks freed
#define | WT_STAT_DSRC_BLOCK_CHECKPOINT_SIZE
| block-manager: checkpoint size
#define | WT_STAT_DSRC_ALLOCATION_SIZE
| block-manager: file allocation unit size
#define | WT_STAT_DSRC_BLOCK_REUSE_BYTES
| block-manager: file bytes available for reuse
#define | WT_STAT_DSRC_BLOCK_MAGIC
| block-manager: file magic number
#define | WT_STAT_DSRC_BLOCK_MAJOR
| block-manager: file major version number
#define | WT_STAT_DSRC_BLOCK_SIZE
| block-manager: file size in bytes
#define | WT_STAT_DSRC_BLOCK_MINOR
| block-manager: minor version number
#define | WT_STAT_DSRC_BTREE_CHECKPOINT_GENERATION
| btree: btree checkpoint generation
#define | WT_STAT_DSRC_BTREE_COLUMN_FIX
| btree: column-store fixed-size leaf pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_COLUMN_INTERNAL
| btree: column-store internal pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_COLUMN_RLE
| btree: column-store variable-size RLE encoded values, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_COLUMN_DELETED
| btree: column-store variable-size deleted values, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_COLUMN_VARIABLE
| btree: column-store variable-size leaf pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_FIXED_LEN
| btree: fixed-record size
#define | WT_STAT_DSRC_BTREE_MAXINTLKEY
| btree: maximum internal page key size
#define | WT_STAT_DSRC_BTREE_MAXINTLPAGE
| btree: maximum internal page size
#define | WT_STAT_DSRC_BTREE_MAXLEAFKEY
| btree: maximum leaf page key size
#define | WT_STAT_DSRC_BTREE_MAXLEAFPAGE
| btree: maximum leaf page size
#define | WT_STAT_DSRC_BTREE_MAXLEAFVALUE
| btree: maximum leaf page value size
#define | WT_STAT_DSRC_BTREE_MAXIMUM_DEPTH
| btree: maximum tree depth
#define | WT_STAT_DSRC_BTREE_ENTRIES
| btree: number of key/value pairs, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_OVERFLOW
| btree: overflow pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_COMPACT_REWRITE
| btree: pages rewritten by compaction
#define | WT_STAT_DSRC_BTREE_ROW_INTERNAL
| btree: row-store internal pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_BTREE_ROW_LEAF
| btree: row-store leaf pages, only reported if tree_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_BYTES_INUSE
| cache: bytes currently in the cache
#define | WT_STAT_DSRC_CACHE_BYTES_READ
| cache: bytes read into cache
#define | WT_STAT_DSRC_CACHE_BYTES_WRITE
| cache: bytes written from cache
#define | WT_STAT_DSRC_CACHE_EVICTION_CHECKPOINT
| cache: checkpoint blocked page eviction
#define | WT_STAT_DSRC_CACHE_EVICTION_FAIL
| cache: data source pages selected for eviction unable to be evicted
#define | WT_STAT_DSRC_CACHE_EVICTION_WALK_PASSES
| cache: eviction walk passes of a file
#define | WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT10
| cache: eviction walk target pages histogram - 0-9
#define | WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT32
| cache: eviction walk target pages histogram - 10-31
#define | WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_GE128
| cache: eviction walk target pages histogram - 128 and higher
#define | WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT64
| cache: eviction walk target pages histogram - 32-63
#define | WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT128
| cache: eviction walk target pages histogram - 64-128
#define | WT_STAT_DSRC_CACHE_EVICTION_WALKS_ABANDONED
| cache: eviction walks abandoned
#define | WT_STAT_DSRC_CACHE_EVICTION_WALKS_STOPPED
| cache: eviction walks gave up because they restarted their walk twice
#define | WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS
| cache: eviction walks gave up because they saw too many pages and found no candidates
#define | WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_RATIO
| cache: eviction walks gave up because they saw too many pages and found too few candidates
#define | WT_STAT_DSRC_CACHE_EVICTION_WALKS_ENDED
| cache: eviction walks reached end of tree
#define | WT_STAT_DSRC_CACHE_EVICTION_WALK_FROM_ROOT
| cache: eviction walks started from root of tree
#define | WT_STAT_DSRC_CACHE_EVICTION_WALK_SAVED_POS
| cache: eviction walks started from saved location in tree
#define | WT_STAT_DSRC_CACHE_EVICTION_HAZARD
| cache: hazard pointer blocked page eviction
#define | WT_STAT_DSRC_CACHE_INMEM_SPLITTABLE
| cache: in-memory page passed criteria to be split
#define | WT_STAT_DSRC_CACHE_INMEM_SPLIT
| cache: in-memory page splits
#define | WT_STAT_DSRC_CACHE_EVICTION_INTERNAL
| cache: internal pages evicted
#define | WT_STAT_DSRC_CACHE_EVICTION_SPLIT_INTERNAL
| cache: internal pages split during eviction
#define | WT_STAT_DSRC_CACHE_EVICTION_SPLIT_LEAF
| cache: leaf pages split during eviction
#define | WT_STAT_DSRC_CACHE_EVICTION_DIRTY
| cache: modified pages evicted
#define | WT_STAT_DSRC_CACHE_READ_OVERFLOW
| cache: overflow pages read into cache
#define | WT_STAT_DSRC_CACHE_EVICTION_DEEPEN
| cache: page split during eviction deepened the tree
#define | WT_STAT_DSRC_CACHE_WRITE_LOOKASIDE
| cache: page written requiring lookaside records
#define | WT_STAT_DSRC_CACHE_READ
| cache: pages read into cache
#define | WT_STAT_DSRC_CACHE_READ_DELETED
| cache: pages read into cache after truncate
#define | WT_STAT_DSRC_CACHE_READ_DELETED_PREPARED
| cache: pages read into cache after truncate in prepare state
#define | WT_STAT_DSRC_CACHE_READ_LOOKASIDE
| cache: pages read into cache requiring lookaside entries
#define | WT_STAT_DSRC_CACHE_PAGES_REQUESTED
| cache: pages requested from the cache
#define | WT_STAT_DSRC_CACHE_EVICTION_PAGES_SEEN
| cache: pages seen by eviction walk
#define | WT_STAT_DSRC_CACHE_WRITE
| cache: pages written from cache
#define | WT_STAT_DSRC_CACHE_WRITE_RESTORE
| cache: pages written requiring in-memory restoration
#define | WT_STAT_DSRC_CACHE_BYTES_DIRTY
| cache: tracked dirty bytes in the cache
#define | WT_STAT_DSRC_CACHE_EVICTION_CLEAN
| cache: unmodified pages evicted
#define | WT_STAT_DSRC_CACHE_STATE_GEN_AVG_GAP
| cache_walk: Average difference between current eviction generation when the page was last considered, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_AVG_WRITTEN_SIZE
| cache_walk: Average on-disk page image size seen, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_AVG_VISITED_AGE
| cache_walk: Average time in cache for pages that have been visited by the eviction server, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_AVG_UNVISITED_AGE
| cache_walk: Average time in cache for pages that have not been visited by the eviction server, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_PAGES_CLEAN
| cache_walk: Clean pages currently in cache, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_GEN_CURRENT
| cache_walk: Current eviction generation, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_PAGES_DIRTY
| cache_walk: Dirty pages currently in cache, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_ROOT_ENTRIES
| cache_walk: Entries in the root page, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_PAGES_INTERNAL
| cache_walk: Internal pages currently in cache, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_PAGES_LEAF
| cache_walk: Leaf pages currently in cache, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_GEN_MAX_GAP
| cache_walk: Maximum difference between current eviction generation when the page was last considered, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_MAX_PAGESIZE
| cache_walk: Maximum page size seen, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_MIN_WRITTEN_SIZE
| cache_walk: Minimum on-disk page image size seen, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_UNVISITED_COUNT
| cache_walk: Number of pages never visited by eviction server, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_SMALLER_ALLOC_SIZE
| cache_walk: On-disk page image sizes smaller than a single allocation unit, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_MEMORY
| cache_walk: Pages created in memory and never written, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_QUEUED
| cache_walk: Pages currently queued for eviction, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_NOT_QUEUEABLE
| cache_walk: Pages that could not be queued for eviction, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_REFS_SKIPPED
| cache_walk: Refs skipped during cache traversal, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_ROOT_SIZE
| cache_walk: Size of the root page, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_CACHE_STATE_PAGES
| cache_walk: Total number of pages currently in cache, only reported if cache_walk or all statistics are enabled
#define | WT_STAT_DSRC_COMPRESS_READ
| compression: compressed pages read
#define | WT_STAT_DSRC_COMPRESS_WRITE
| compression: compressed pages written
#define | WT_STAT_DSRC_COMPRESS_WRITE_FAIL
| compression: page written failed to compress
#define | WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL
| compression: page written was too small to compress
#define | WT_STAT_DSRC_COMPRESS_RAW_FAIL_TEMPORARY
| compression: raw compression call failed, additional data available
#define | WT_STAT_DSRC_COMPRESS_RAW_FAIL
| compression: raw compression call failed, no additional data available
#define | WT_STAT_DSRC_COMPRESS_RAW_OK
| compression: raw compression call succeeded
#define | WT_STAT_DSRC_CURSOR_INSERT_BULK
| cursor: bulk-loaded cursor-insert calls
#define | WT_STAT_DSRC_CURSOR_CREATE
| cursor: create calls
#define | WT_STAT_DSRC_CURSOR_INSERT_BYTES
| cursor: cursor-insert key and value bytes inserted
#define | WT_STAT_DSRC_CURSOR_REMOVE_BYTES
| cursor: cursor-remove key bytes removed
#define | WT_STAT_DSRC_CURSOR_UPDATE_BYTES
| cursor: cursor-update value bytes updated
#define | WT_STAT_DSRC_CURSOR_CACHE
| cursor: cursors cached on close
#define | WT_STAT_DSRC_CURSOR_REOPEN
| cursor: cursors reused from cache
#define | WT_STAT_DSRC_CURSOR_INSERT
| cursor: insert calls
#define | WT_STAT_DSRC_CURSOR_MODIFY
| cursor: modify calls
#define | WT_STAT_DSRC_CURSOR_NEXT
| cursor: next calls
#define | WT_STAT_DSRC_CURSOR_PREV
| cursor: prev calls
#define | WT_STAT_DSRC_CURSOR_REMOVE
| cursor: remove calls
#define | WT_STAT_DSRC_CURSOR_RESERVE
| cursor: reserve calls
#define | WT_STAT_DSRC_CURSOR_RESET
| cursor: reset calls
#define | WT_STAT_DSRC_CURSOR_RESTART
| cursor: restarted searches
#define | WT_STAT_DSRC_CURSOR_SEARCH
| cursor: search calls
#define | WT_STAT_DSRC_CURSOR_SEARCH_NEAR
| cursor: search near calls
#define | WT_STAT_DSRC_CURSOR_TRUNCATE
| cursor: truncate calls
#define | WT_STAT_DSRC_CURSOR_UPDATE
| cursor: update calls
#define | WT_STAT_DSRC_REC_DICTIONARY
| reconciliation: dictionary matches
#define | WT_STAT_DSRC_REC_PAGE_DELETE_FAST
| reconciliation: fast-path pages deleted
#define | WT_STAT_DSRC_REC_SUFFIX_COMPRESSION
| reconciliation: internal page key bytes discarded using suffix compression
#define | WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL
| reconciliation: internal page multi-block writes
#define | WT_STAT_DSRC_REC_OVERFLOW_KEY_INTERNAL
| reconciliation: internal-page overflow keys
#define | WT_STAT_DSRC_REC_PREFIX_COMPRESSION
| reconciliation: leaf page key bytes discarded using prefix compression
#define | WT_STAT_DSRC_REC_MULTIBLOCK_LEAF
| reconciliation: leaf page multi-block writes
#define | WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF
| reconciliation: leaf-page overflow keys
#define | WT_STAT_DSRC_REC_MULTIBLOCK_MAX
| reconciliation: maximum blocks required for a page
#define | WT_STAT_DSRC_REC_OVERFLOW_VALUE
| reconciliation: overflow values written
#define | WT_STAT_DSRC_REC_PAGE_MATCH
| reconciliation: page checksum matches
#define | WT_STAT_DSRC_REC_PAGES
| reconciliation: page reconciliation calls
#define | WT_STAT_DSRC_REC_PAGES_EVICTION
| reconciliation: page reconciliation calls for eviction
#define | WT_STAT_DSRC_REC_PAGE_DELETE
| reconciliation: pages deleted
#define | WT_STAT_DSRC_SESSION_CURSOR_CACHED
| session: cached cursor count
#define | WT_STAT_DSRC_SESSION_COMPACT
| session: object compaction
#define | WT_STAT_DSRC_SESSION_CURSOR_OPEN
| session: open cursor count
#define | WT_STAT_DSRC_TXN_UPDATE_CONFLICT
| transaction: update conflicts

## Statistics for join cursors
#define | WT_STAT_JOIN_MAIN_ACCESS
| : accesses to the main table
#define | WT_STAT_JOIN_BLOOM_FALSE_POSITIVE
| : bloom filter false positives
#define | WT_STAT_JOIN_MEMBERSHIP_CHECK
| : checks that conditions of membership are satisfied
#define | WT_STAT_JOIN_BLOOM_INSERT
| : items inserted into a bloom filter
#define | WT_STAT_JOIN_ITERATED
| : items iterated

## Detailed Description

The functions, handles and methods applications use to access and manage data with WiredTiger.

## Class Documentation

## ◆ WT_ITEM

struct WT_ITEM

A raw item of data to be managed, including a pointer to the data and a length.

WT_ITEM structures do not need to be cleared before use.

Examples:
  ex_async.c, ex_encrypt.c, ex_extending.c, ex_extractor.c, ex_log.c, and ex_schema.c.

Class Members
const void * | data | The memory reference of the data item. For items returned by a WT_CURSOR, the pointer is only valid until the next operation on that cursor. Applications that need to keep an item across multiple cursor operations must make a copy.
size_t | size | The number of bytes in the data item. The maximum length of a single column stored in a table is not fixed (as it partially depends on the underlying file configuration), but is always a small number of bytes less than 4GB.

## ◆ WT_MODIFY

struct WT_MODIFY

A set of modifications for a value, including a pointer to new data and a length, plus a target offset in the value and an optional length of data in the value to be replaced.

WT_MODIFY structures do not need to be cleared before use.

Class Members
WT_ITEM | data | New data. The size of the new data may be zero when no new data is provided.
size_t | offset | The zero-based byte offset in the value where the new data is placed. If the offset is past the end of the value, padding bytes are appended to the value up to the specified offset. If the value is a string (value format `S`), the padding byte is a space. If the value is a raw byte array accessed using a WT_ITEM structure (value format `u`), the padding byte is a nul.
size_t | size | The number of bytes in the value to be replaced. If the size is zero, no bytes from the value are replaced and the new data is inserted. If the offset is past the end of the value, the size is ignored. If the offset plus the size overlaps the end of the previous value, bytes from the offset to the end of the value are replaced and any remaining new data is appended.

## Macro Definition Documentation

## ◆ WT_CACHE_FULL

#define WT_CACHE_FULL

Operation would overflow cache.

This error is only generated when wiredtiger_open is configured to run in- memory, and an insert or update operation requires more than the configured cache size to complete. The operation may be retried; if a transaction is in progress, it should be rolled back and the operation retried in a new transaction.

## ◆ WT_DUPLICATE_KEY

#define WT_DUPLICATE_KEY

Attempt to insert an existing key.

This error is generated when the application attempts to insert a record with the same key as an existing record without the 'overwrite' configuration to WT_SESSION::open_cursor.

## ◆ WT_ERROR

#define WT_ERROR

Non-specific WiredTiger error.

This error is returned when an error is not covered by a specific error return.

## ◆ WT_INTPACK32_MAXSIZE

#define WT_INTPACK32_MAXSIZE

The maximum packed size of a 32-bit integer.

The wiredtiger_struct_pack function will pack single integers into at most this many bytes.

## ◆ WT_INTPACK64_MAXSIZE

#define WT_INTPACK64_MAXSIZE

The maximum packed size of a 64-bit integer.

The wiredtiger_struct_pack function will pack single long integers into at most this many bytes.

## ◆ WT_NOTFOUND

#define WT_NOTFOUND

Item not found.

This error indicates an operation did not find a value to return. This includes cursor search and other operations where no record matched the cursor's search key such as WT_CURSOR::update or WT_CURSOR::remove.

Examples:
  ex_access.c, ex_cursor.c, ex_encrypt.c, ex_extractor.c, ex_file_system.c, ex_log.c, ex_schema.c, ex_stat.c, ex_thread.c, and rotn_encrypt.c.

## ◆ WT_PANIC

#define WT_PANIC

WiredTiger library panic.

This error indicates an underlying problem that requires a database restart. The application may exit immediately, no further WiredTiger calls are required (and further calls will themselves immediately fail).

## ◆ WT_PREPARE_CONFLICT

#define WT_PREPARE_CONFLICT

Conflict with a prepared update.

This error is generated when the application attempts to update an already updated record which is in prepared state. An updated record will be in prepared state, when the transaction that performed the update is in prepared state.

## ◆ WT_ROLLBACK

#define WT_ROLLBACK

Conflict between concurrent operations.

This error is generated when an operation cannot be completed due to a conflict with concurrent operations. The operation may be retried; if a transaction is in progress, it should be rolled back and the operation retried in a new transaction.

## ◆ WT_RUN_RECOVERY

#define WT_RUN_RECOVERY

Recovery must be run to continue.

This error is generated when wiredtiger_open is configured to return an error if recovery is required to use the database.

## Typedef Documentation

## ◆ WT_PACK_STREAM

typedef struct __wt_pack_stream WT_PACK_STREAM

Streaming interface to packing.

This allows applications to pack or unpack records one field at a time. This is an opaque handle returned by wiredtiger_pack_start or wiredtiger_unpack_start. It must be closed with wiredtiger_pack_close.

## Enumeration Type Documentation

## ◆ WT_ASYNC_OPTYPE

enum WT_ASYNC_OPTYPE

Asynchronous operation types.

Enumerator
WT_AOP_NONE | No operation type set.
WT_AOP_COMPACT | WT_ASYNC_OP::compact.
WT_AOP_INSERT | WT_ASYNC_OP::insert.
WT_AOP_REMOVE | WT_ASYNC_OP::remove.
WT_AOP_SEARCH | WT_ASYNC_OP::search.
WT_AOP_UPDATE | WT_ASYNC_OP::update.

## Function Documentation

## ◆ wiredtiger_checksum_crc32c()

uint32_t wiredtiger_checksum_crc32c | ( | const void * | buffer,
|  | size_t | len
| ) |  |

Return a buffer's CRC32C checksum.

The WiredTiger library CRC32C checksum function uses hardware support where available, else it falls back to a software implementation.

uint32_t crc32c;
crc32c = wiredtiger_checksum_crc32c(buffer, len);

Parameters

  buffer | a pointer to a buffer
  len | the number of valid bytes in the buffer

Returns
  the buffer's CRC32C checksum

## ◆ wiredtiger_config_parser_open()

int wiredtiger_config_parser_open | ( | WT_SESSION * | session,
|  | const char * | config,
|  | size_t | len,
|  | WT_CONFIG_PARSER ** | config_parserp
| ) |  |

Create a handle that can be used to parse or create configuration strings compatible with WiredTiger APIs.

This API is outside the scope of a WiredTiger connection handle, since applications may need to generate configuration strings prior to calling wiredtiger_open.

Parameters

  | session | the session handle to be used for error reporting (if NULL, error messages will be written to stderr).
  | config | the configuration string being parsed. The string must remain valid for the lifetime of the parser handle.
  | len | the number of valid bytes in `config`
  [out] | config_parserp | A pointer to the newly opened handle

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

WT_CONFIG_ITEM k, v;
WT_CONFIG_PARSER *parser;
const char *config_string =
"path=/dev/loop,page_size=1024,log=(archive=true,file_max=20MB)";
error_check(wiredtiger_config_parser_open(
NULL, config_string, strlen(config_string), &parser));
error_check(parser->close(parser));

## ◆ wiredtiger_open()

int wiredtiger_open | ( | const char * | home,
|  | WT_EVENT_HANDLER * | event_handler,
|  | const char * | config,
|  | WT_CONNECTION ** | connectionp
| ) |  |

Open a connection to a database.

error_check(wiredtiger_open(home, NULL,
"create,cache_size=5GB,log=(enabled,recover=on),statistics=(all)",
&conn));

Parameters

  | home | The path to the database home directory. See Database Home Directory for more information.
  | event_handler | An event handler. If `NULL`, a default event handler is installed that writes error messages to stderr. See Message handling using the WT_EVENT_HANDLER for more information.
  | config | configuration string, see Configuration Strings. Permitted values:
  Name | Effect | Values
  --- | --- | ---
  `async = (` | asynchronous operations configuration options. | a set of related configuration options defined below.
  `enabled` | enable asynchronous operation. | a boolean flag; default `false`.
  `ops_max` | maximum number of expected simultaneous asynchronous operations. | an integer between 1 and 4096; default `1024`.
  `threads` | the number of worker threads to service asynchronous requests. Each worker thread uses a session from the configured session_max. | an integer between 1 and 20; default `2`.
  `)` |  |
  `buffer_alignment` | in-memory alignment (in bytes) for buffers used for I/O. The default value of -1 indicates a platform-specific alignment value should be used (4KB on Linux systems when direct I/O is configured, zero elsewhere). | an integer between -1 and 1MB; default `-1`.
  `builtin_extension_config` | A structure where the keys are the names of builtin extensions and the values are passed to WT_CONNECTION::load_extension as the `config` parameter (for example, `builtin_extension_config={zlib={compression_level=3}}`). | a string; default empty.
  `cache_cursors` | enable caching of cursors for reuse. This is the default value for any sessions created, and can be overridden in configuring `cache_cursors` in WT_CONNECTION.open_session. | a boolean flag; default `true`.
  `cache_overhead` | assume the heap allocator overhead is the specified percentage, and adjust the cache usage by that amount (for example, if there is 10GB of data in cache, a percentage of 10 means WiredTiger treats this as 11GB). This value is configurable because different heap allocators have different overhead and different workloads will have different heap allocation sizes and patterns, therefore applications may need to adjust this value based on allocator choice and behavior in measured workloads. | an integer between 0 and 30; default `8`.
  `cache_size` | maximum heap memory to allocate for the cache. A database should configure either `cache_size` or `shared_cache` but not both. | an integer between 1MB and 10TB; default `100MB`.
  `checkpoint = (` | periodically checkpoint the database. Enabling the checkpoint server uses a session from the configured session_max. | a set of related configuration options defined below.
  `log_size` | wait for this amount of log record bytes to be written to the log between each checkpoint. If non-zero, this value will use a minimum of the log file size. A database can configure both log_size and wait to set an upper bound for checkpoints; setting this value above 0 configures periodic checkpoints. | an integer between 0 and 2GB; default `0`.
  `wait` | seconds to wait between each checkpoint; setting this value above 0 configures periodic checkpoints. | an integer between 0 and 100000; default `0`.
  `)` |  |
  `checkpoint_sync` | flush files to stable storage when closing or writing checkpoints. | a boolean flag; default `true`.
  `compatibility = (` | set compatibility version of database. Changing the compatibility version requires that there are no active operations for the duration of the call. | a set of related configuration options defined below.
  `release` | compatibility release version string. | a string; default empty.
  `require_max` | required maximum compatibility version of existing data files. Must be greater than or equal to any release version set in the `release` setting. Has no effect if creating the database. | a string; default empty.
  `require_min` | required minimum compatibility version of existing data files. Must be less than or equal to any release version set in the `release` setting. Has no effect if creating the database. | a string; default empty.
  `)` |  |
  `config_base` | write the base configuration file if creating the database. If `false` in the config passed directly to wiredtiger_open, will ignore any existing base configuration file in addition to not creating one. See WiredTiger.basecfg file for more information. | a boolean flag; default `true`.
  `create` | create the database if it does not exist. | a boolean flag; default `false`.
  `direct_io` | Use `O_DIRECT` on POSIX systems, and `FILE_FLAG_NO_BUFFERING` on Windows to access files. Options are given as a list, such as `"direct_io=[data]"`. Configuring `direct_io` requires care, see Direct I/O for important warnings. Including `"data"` will cause WiredTiger data files to use direct I/O, including `"log"` will cause WiredTiger log files to use direct I/O, and including `"checkpoint"` will cause WiredTiger data files opened at a checkpoint (i.e: read only) to use direct I/O. `direct_io` should be combined with `write_through` to get the equivalent of `O_DIRECT` on Windows. | a list, with values chosen from the following options: `"checkpoint"`, `"data"`, `"log"`; default empty.
  `encryption = (` | configure an encryptor for system wide metadata and logs. If a system wide encryptor is set, it is also used for encrypting data files and tables, unless encryption configuration is explicitly set for them when they are created with WT_SESSION::create. | a set of related configuration options defined below.
  `keyid` | An identifier that identifies a unique instance of the encryptor. It is stored in clear text, and thus is available when the wiredtiger database is reopened. On the first use of a (name, keyid) combination, the WT_ENCRYPTOR::customize function is called with the keyid as an argument. | a string; default empty.
  `name` | Permitted values are `"none"` or custom encryption engine name created with WT_CONNECTION::add_encryptor. See Encryptors for more information. | a string; default `none`.
  `secretkey` | A string that is passed to the WT_ENCRYPTOR::customize function. It is never stored in clear text, so must be given to any subsequent wiredtiger_open calls to reopen the database. It must also be provided to any "wt" commands used with this database. | a string; default empty.
  `)` |  |
  `error_prefix` | prefix string for error messages. | a string; default empty.
  `eviction = (` | eviction configuration options. | a set of related configuration options defined below.
  `threads_max` | maximum number of threads WiredTiger will start to help evict pages from cache. The number of threads started will vary depending on the current eviction load. Each eviction worker thread uses a session from the configured session_max. | an integer between 1 and 20; default `8`.
  `threads_min` | minimum number of threads WiredTiger will start to help evict pages from cache. The number of threads currently running will vary depending on the current eviction load. | an integer between 1 and 20; default `1`.
  `)` |  |
  `eviction_checkpoint_target` | perform eviction at the beginning of checkpoints to bring the dirty content in cache to this level. It is a percentage of the cache size if the value is within the range of 0 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the `cache_size`. Ignored if set to zero or `in_memory` is `true`. | an integer between 0 and 10TB; default `5`.
  `eviction_dirty_target` | perform eviction in worker threads when the cache contains at least this much dirty content. It is a percentage of the cache size if the value is within the range of 1 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the `cache_size`. | an integer between 1 and 10TB; default `5`.
  `eviction_dirty_trigger` | trigger application threads to perform eviction when the cache contains at least this much dirty content. It is a percentage of the cache size if the value is within the range of 1 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the `cache_size`. This setting only alters behavior if it is lower than eviction_trigger. | an integer between 1 and 10TB; default `20`.
  `eviction_target` | perform eviction in worker threads when the cache contains at least this much content. It is a percentage of the cache size if the value is within the range of 10 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the `cache_size`. | an integer between 10 and 10TB; default `80`.
  `eviction_trigger` | trigger application threads to perform eviction when the cache contains at least this much content. It is a percentage of the cache size if the value is within the range of 10 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the `cache_size`. | an integer between 10 and 10TB; default `95`.
  `exclusive` | fail if the database already exists, generally used with the `create` option. | a boolean flag; default `false`.
  `extensions` | list of shared library extensions to load (using dlopen). Any values specified to a library extension are passed to WT_CONNECTION::load_extension as the `config` parameter (for example, `extensions=(/path/ext.so={entry=my_entry})`). | a list of strings; default empty.
  `file_extend` | file extension configuration. If set, extend files of the set type in allocations of the set size, instead of a block at a time as each new block is written. For example, `file_extend=(data=16MB)`. | a list, with values chosen from the following options: `"data"`, `"log"`; default empty.
  `file_manager = (` | control how file handles are managed. | a set of related configuration options defined below.
  `close_handle_minimum` | number of handles open before the file manager will look for handles to close. | an integer greater than or equal to 0; default `250`.
  `close_idle_time` | amount of time in seconds a file handle needs to be idle before attempting to close it. A setting of 0 means that idle handles are not closed. | an integer between 0 and 100000; default `30`.
  `close_scan_interval` | interval in seconds at which to check for files that are inactive and close them. | an integer between 1 and 100000; default `10`.
  `)` |  |
  `in_memory` | keep data in-memory only. See In-memory databases for more information. | a boolean flag; default `false`.
  `log = (` | enable logging. Enabling logging uses three sessions from the configured session_max. | a set of related configuration options defined below.
  `archive` | automatically archive unneeded log files. | a boolean flag; default `true`.
  `compressor` | configure a compressor for log records. Permitted values are `"none"` or custom compression engine name created with WT_CONNECTION::add_compressor. If WiredTiger has builtin support for `"lz4"`, `"snappy"`, `"zlib"` or `"zstd"` compression, these names are also available. See Compressors for more information. | a string; default `none`.
  `enabled` | enable logging subsystem. | a boolean flag; default `false`.
  `file_max` | the maximum size of log files. | an integer between 100KB and 2GB; default `100MB`.
  `path` | the name of a directory into which log files are written. The directory must already exist. If the value is not an absolute path, the path is relative to the database home (see Absolute paths for more information). | a string; default `"."`.
  `prealloc` | pre-allocate log files. | a boolean flag; default `true`.
  `recover` | run recovery or error if recovery needs to run after an unclean shutdown. | a string, chosen from the following options: `"error"`, `"on"`; default `on`.
  `zero_fill` | manually write zeroes into log files. | a boolean flag; default `false`.
  `)` |  |
  `lsm_manager = (` | configure database wide options for LSM tree management. The LSM manager is started automatically the first time an LSM tree is opened. The LSM manager uses a session from the configured session_max. | a set of related configuration options defined below.
  `merge` | merge LSM chunks where possible. | a boolean flag; default `true`.
  `worker_thread_max` | Configure a set of threads to manage merging LSM trees in the database. Each worker thread uses a session handle from the configured session_max. | an integer between 3 and 20; default `4`.
  `)` |  |
  `mmap` | Use memory mapping to access files when possible. | a boolean flag; default `true`.
  `multiprocess` | permit sharing between processes (will automatically start an RPC server for primary processes and use RPC for secondary processes). Not yet supported in WiredTiger. | a boolean flag; default `false`.
  `operation_tracking = (` | enable tracking of performance-critical functions. See Track function calls for more information. | a set of related configuration options defined below.
  `enabled` | enable operation tracking subsystem. | a boolean flag; default `false`.
  `path` | the name of a directory into which operation tracking files are written. The directory must already exist. If the value is not an absolute path, the path is relative to the database home (see Absolute paths for more information). | a string; default `"."`.
  `)` |  |
  `readonly` | open connection in read-only mode. The database must exist. All methods that may modify a database are disabled. See Database read-only mode for more information. | a boolean flag; default `false`.
  `session_max` | maximum expected number of sessions (including server threads). | an integer greater than or equal to 1; default `100`.
  `shared_cache = (` | shared cache configuration options. A database should configure either a cache_size or a shared_cache not both. Enabling a shared cache uses a session from the configured session_max. A shared cache can not have absolute values configured for cache eviction settings. | a set of related configuration options defined below.
  `chunk` | the granularity that a shared cache is redistributed. | an integer between 1MB and 10TB; default `10MB`.
  `name` | the name of a cache that is shared between databases or `"none"` when no shared cache is configured. | a string; default `none`.
  `quota` | maximum size of cache this database can be allocated from the shared cache. Defaults to the entire shared cache size. | an integer; default `0`.
  `reserve` | amount of cache this database is guaranteed to have available from the shared cache. This setting is per database. Defaults to the chunk size. | an integer; default `0`.
  `size` | maximum memory to allocate for the shared cache. Setting this will update the value if one is already set. | an integer between 1MB and 10TB; default `500MB`.
  `)` |  |
  `statistics` | Maintain database statistics, which may impact performance. Choosing "all" maintains all statistics regardless of cost, "fast" maintains a subset of statistics that are relatively inexpensive, "none" turns off all statistics. The "clear" configuration resets statistics after they are gathered, where appropriate (for example, a cache size statistic is not cleared, while the count of cursor insert operations will be cleared). When "clear" is configured for the database, gathered statistics are reset each time a statistics cursor is used to gather statistics, as well as each time statistics are logged using the `statistics_log` configuration. See Statistics for more information. | a list, with values chosen from the following options: `"all"`, `"cache_walk"`, `"fast"`, `"none"`, `"clear"`, `"tree_walk"`; default `none`.
  `statistics_log = (` | log any statistics the database is configured to maintain, to a file. See Statistics for more information. Enabling the statistics log server uses a session from the configured session_max. | a set of related configuration options defined below.
  `json` | encode statistics in JSON format. | a boolean flag; default `false`.
  `on_close` | log statistics on database close. | a boolean flag; default `false`.
  `path` | the name of a directory into which statistics files are written. The directory must already exist. If the value is not an absolute path, the path is relative to the database home (see Absolute paths for more information). | a string; default `"."`.
  `sources` | if non-empty, include statistics for the list of data source URIs, if they are open at the time of the statistics logging. The list may include URIs matching a single data source ("table:mytable"), or a URI matching all data sources of a particular type ("table:"). | a list of strings; default empty.
  `timestamp` | a timestamp prepended to each log record, may contain strftime conversion specifications, when `json` is configured, defaults to `"%FT%Y.000Z"`. | a string; default `"%b %d %H:%M:%S"`.
  `wait` | seconds to wait between each write of the log records; setting this value above 0 configures statistics logging. | an integer between 0 and 100000; default `0`.
  `)` |  |
  `transaction_sync = (` | how to sync log records when the transaction commits. | a set of related configuration options defined below.
  `enabled` | whether to sync the log on every commit by default, can be overridden by the `sync` setting to WT_SESSION::commit_transaction. | a boolean flag; default `false`.
  `method` | the method used to ensure log records are stable on disk, see Commit-level durability for more information. | a string, chosen from the following options: `"dsync"`, `"fsync"`, `"none"`; default `fsync`.
  `)` |  |
  `use_environment` | use the `WIREDTIGER_CONFIG` and `WIREDTIGER_HOME` environment variables if the process is not running with special privileges. See Database Home Directory for more information. | a boolean flag; default `true`.
  `use_environment_priv` | use the `WIREDTIGER_CONFIG` and `WIREDTIGER_HOME` environment variables even if the process is running with special privileges. See Database Home Directory for more information. | a boolean flag; default `false`.
  `verbose` | enable messages for various events. Options are given as a list, such as `"verbose=[evictserver,read]"`. | a list, with values chosen from the following options: `"api"`, `"block"`, `"checkpoint"`, `"checkpoint_progress"`, `"compact"`, `"evict"`, `"evict_stuck"`, `"evictserver"`, `"fileops"`, `"handleops"`, `"log"`, `"lookaside"`, `"lookaside_activity"`, `"lsm"`, `"lsm_manager"`, `"metadata"`, `"mutex"`, `"overflow"`, `"read"`, `"rebalance"`, `"reconcile"`, `"recovery"`, `"recovery_progress"`, `"salvage"`, `"shared_cache"`, `"split"`, `"temporary"`, `"thread_group"`, `"timestamp"`, `"transaction"`, `"verify"`, `"version"`, `"write"`; default empty.
  `write_through` | Use `FILE_FLAG_WRITE_THROUGH` on Windows to write to files. Ignored on non-Windows systems. Options are given as a list, such as `"write_through=[data]"`. Configuring `write_through` requires care, see Direct I/O for important warnings. Including `"data"` will cause WiredTiger data files to write through cache, including `"log"` will cause WiredTiger log files to write through cache. `write_through` should be combined with `direct_io` to get the equivalent of POSIX `O_DIRECT` on Windows. | a list, with values chosen from the following options: `"data"`, `"log"`; default empty.
  Additionally, if files named `WiredTiger.config` or `WiredTiger.basecfg` appear in the WiredTiger home directory, they are read for configuration values (see WiredTiger.config file and WiredTiger.basecfg file for details). See Configuration ordering for ordering of the configuration mechanisms.
  [out] | connectionp | A pointer to the newly opened connection handle

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

Examples:
  ex_access.c, ex_async.c, ex_call_center.c, ex_cursor.c, ex_encrypt.c, ex_extending.c, ex_extractor.c, ex_file_system.c, ex_hello.c, ex_log.c, ex_pack.c, ex_schema.c, ex_stat.c, and ex_thread.c.

## ◆ wiredtiger_pack_close()

int wiredtiger_pack_close | ( | WT_PACK_STREAM * | ps,
|  | size_t * | usedp
| ) |  |

Close a packing stream.

Parameters

  | ps | the packing stream handle
  [out] | usedp | the number of bytes in the buffer used by the stream

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_pack_int()

int wiredtiger_pack_int | ( | WT_PACK_STREAM * | ps,
|  | int64_t | i
| ) |  |

Pack a signed integer into a packing stream.

Parameters

  ps | the packing stream handle
  i | a signed integer to pack

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_pack_item()

int wiredtiger_pack_item | ( | WT_PACK_STREAM * | ps,
|  | WT_ITEM * | item
| ) |  |

Pack an item into a packing stream.

Parameters

  ps | the packing stream handle
  item | an item to pack

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_pack_start()

int wiredtiger_pack_start | ( | WT_SESSION * | session,
|  | const char * | format,
|  | void * | buffer,
|  | size_t | size,
|  | WT_PACK_STREAM ** | psp
| ) |  |

Start a packing operation into a buffer with the given format string.

This should be followed by a series of calls to wiredtiger_pack_item, wiredtiger_pack_int, wiredtiger_pack_str or wiredtiger_pack_uint to fill in the values.

Parameters

  | session | the session handle
  | format | the data format, see Packing and Unpacking Data
  | buffer | a pointer to memory to hold the packed data
  | size | the size of the buffer
  [out] | psp | the new packing stream handle

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_pack_str()

int wiredtiger_pack_str | ( | WT_PACK_STREAM * | ps,
|  | const char * | s
| ) |  |

Pack a string into a packing stream.

Parameters

  ps | the packing stream handle
  s | a string to pack

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_pack_uint()

int wiredtiger_pack_uint | ( | WT_PACK_STREAM * | ps,
|  | uint64_t | u
| ) |  |

Pack an unsigned integer into a packing stream.

Parameters

  ps | the packing stream handle
  u | an unsigned integer to pack

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_strerror()

const char* wiredtiger_strerror | ( | int | error | ) |

Return information about a WiredTiger error as a string (see WT_SESSION::strerror for a thread-safe API).

const char *key = "non-existent key";
cursor->set_key(cursor, key);
if ((ret = cursor->remove(cursor)) != 0) {
fprintf(stderr,
"cursor.remove: %s\n", wiredtiger_strerror(ret));
return (ret);
}

Parameters

  error | a return value from a WiredTiger, ISO C, or POSIX standard API

Returns
  a string representation of the error

Examples:
  ex_async.c, and ex_file_system.c.

## ◆ wiredtiger_struct_pack()

int wiredtiger_struct_pack | ( | WT_SESSION * | session,
|  | void * | buffer,
|  | size_t | len,
|  | const char * | format,
|  |  | ...
| ) |  |

Pack a structure into a buffer.

See Packing and Unpacking Data for a description of the permitted format strings.

# Packing Examples

For example, the string `"iSh"` will pack a 32-bit integer followed by a NUL-terminated string, followed by a 16-bit integer. The default, big-endian encoding will be used, with no alignment. This could be used in C as follows:

char buf[100];
error_check(wiredtiger_struct_pack(
session, buf, sizeof(buf), "iSh", 42, "hello", -3));

Then later, the values can be unpacked as follows:

int i;
char *s;
short h;
error_check(wiredtiger_struct_unpack(
session, buf, sizeof(buf), "iSh", &i, &s, &h));

Parameters

  session | the session handle
  buffer | a pointer to a packed byte array
  len | the number of valid bytes in the buffer
  format | the data format, see Packing and Unpacking Data

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

Examples:
  ex_pack.c.

## ◆ wiredtiger_struct_size()

int wiredtiger_struct_size | ( | WT_SESSION * | session,
|  | size_t * | lenp,
|  | const char * | format,
|  |  | ...
| ) |  |

Calculate the size required to pack a structure.

Note that for variable-sized fields including variable-sized strings and integers, the calculated sized merely reflects the expected sizes specified in the format string itself.

size_t size;
error_check(wiredtiger_struct_size(
session, &size, "iSh", 42, "hello", -3));

Parameters

  session | the session handle
  lenp | a location where the number of bytes needed for the matching call to wiredtiger_struct_pack is returned
  format | the data format, see Packing and Unpacking Data

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

Examples:
  ex_pack.c.

## ◆ wiredtiger_struct_unpack()

int wiredtiger_struct_unpack | ( | WT_SESSION * | session,
|  | const void * | buffer,
|  | size_t | len,
|  | const char * | format,
|  |  | ...
| ) |  |

Unpack a structure from a buffer.

Reverse of wiredtiger_struct_pack: gets values out of a packed byte string.

int i;
char *s;
short h;
error_check(wiredtiger_struct_unpack(
session, buf, sizeof(buf), "iSh", &i, &s, &h));

Parameters

  session | the session handle
  buffer | a pointer to a packed byte array
  len | the number of valid bytes in the buffer
  format | the data format, see Packing and Unpacking Data

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

Examples:
  ex_extractor.c, ex_pack.c, and ex_schema.c.

## ◆ wiredtiger_unpack_int()

int wiredtiger_unpack_int | ( | WT_PACK_STREAM * | ps,
|  | int64_t * | ip
| ) |  |

Unpack a signed integer from a packing stream.

Parameters

  | ps | the packing stream handle
  [out] | ip | the unpacked signed integer

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_unpack_item()

int wiredtiger_unpack_item | ( | WT_PACK_STREAM * | ps,
|  | WT_ITEM * | item
| ) |  |

Unpack an item from a packing stream.

Parameters

  ps | the packing stream handle
  item | an item to unpack

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_unpack_start()

int wiredtiger_unpack_start | ( | WT_SESSION * | session,
|  | const char * | format,
|  | const void * | buffer,
|  | size_t | size,
|  | WT_PACK_STREAM ** | psp
| ) |  |

Start an unpacking operation from a buffer with the given format string.

This should be followed by a series of calls to wiredtiger_unpack_item, wiredtiger_unpack_int, wiredtiger_unpack_str or wiredtiger_unpack_uint to retrieve the packed values.

Parameters

  | session | the session handle
  | format | the data format, see Packing and Unpacking Data
  | buffer | a pointer to memory holding the packed data
  | size | the size of the buffer
  [out] | psp | the new packing stream handle

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_unpack_str()

int wiredtiger_unpack_str | ( | WT_PACK_STREAM * | ps,
|  | const char ** | sp
| ) |  |

Unpack a string from a packing stream.

Parameters

  | ps | the packing stream handle
  [out] | sp | the unpacked string

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_unpack_uint()

int wiredtiger_unpack_uint | ( | WT_PACK_STREAM * | ps,
|  | uint64_t * | up
| ) |  |

Unpack an unsigned integer from a packing stream.

Parameters

  | ps | the packing stream handle
  [out] | up | the unpacked unsigned integer

Returns
  zero on success and a non-zero error code on failure. See Error handling for details.

## ◆ wiredtiger_version()

const char* wiredtiger_version | ( | int * | majorp,
|  | int * | minorp,
|  | int * | patchp
| ) |  |

Get version information.

printf("WiredTiger version %s\n", wiredtiger_version(NULL, NULL, NULL));
int major_v, minor_v, patch;
(void)wiredtiger_version(&major_v, &minor_v, &patch);
printf("WiredTiger version is %d, %d (patch %d)\n",
major_v, minor_v, patch);

Parameters

  majorp | a location where the major version number is returned
  minorp | a location where the minor version number is returned
  patchp | a location where the patch version number is returned

Returns
  a string representation of the version