diff options
author | Alex Gorrod <alexander.gorrod@mongodb.com> | 2017-06-07 07:20:49 +1000 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2017-06-07 07:20:49 +1000 |
commit | 60341ff5b540ed35c8378910d92fe6c128f398e6 (patch) | |
tree | 989cb325f5ea6e335fda4852ae6cfca6a13d3b11 /src/third_party/wiredtiger/src/include/cursor.h | |
parent | a85685ce5ed0e07107476e1f4098034452cf7d6a (diff) | |
download | mongo-60341ff5b540ed35c8378910d92fe6c128f398e6.tar.gz |
Import wiredtiger: 7aaeaaa054d1ac27a95c79984f7ca69ba739caae from branch mongodb-3.6
ref: 78109ca3fe..7aaeaaa054
for: 3.5.9
SERVER-28820 Recovery failed: WT_NOTFOUND: item not found
SERVER-28835 Fix a memory leak in WiredTiger on error when creating thread group
WT-2972 Add interface allowing partial updates to existing values
WT-3041 Failure of test_perf01 on PPC
WT-3063 Reserve records for read-modify-write
WT-3076 Add a general-purpose epoch manager
WT-3123 Thread group holding lock across thread join
WT-3142 Add a workload generator application
WT-3158 Fix structure layout on Windows.
WT-3160 Improve eviction of internal pages from idle trees
WT-3197 aarch64 CRC32C support fails to compile on non-linux ARM platforms
WT-3219 Make the clang-analyzer job fail when lint is introduced
WT-3222 Review and enhance log statistics
WT-3245 Avoid hangs on shutdown when a utility thread encounters an error
WT-3247 Test should exit instead of abort to avoid a core dump
WT-3248 Performance degradation in workload with large overflow items
WT-3253 txn07 test problem
WT-3258 Improve visibility into thread wait time due to pages exceeding memory_page_max
WT-3261 add a checkpoint epoch to avoid draining the eviction queue
WT-3262 Schema operations shouldn't wait for cache
WT-3263 Allow archive on restart/recovery if clean shutdown
WT-3264 Permanent change to disable logging should eventually remove all logs
WT-3265 Verify hits assertion in eviction when transiting handle to exclusive mode
WT-3266 Thread group deadlock
WT-3267 Upgrade copyright notices from 2016 to 2017.
WT-3268 Failure to close cursor can get wiredtiger stuck in a cursor-close loop
WT-3269 Miscellaneous cleanup changes
WT-3271 Eviction tuning stuck in a loop
WT-3275 stress test sanitizer failure
WT-3278 log the row-store cursor key instead of page key
WT-3281 stress test sanitizer failure
WT-3282 Stuck in conn cache pool destroy join
WT-3284 tree-walk restart bug
WT-3287 review WiredTiger internal panic checks
WT-3288 fix error codes for event_handler to be consistent in file operations
WT-3292 review/cleanup full-barrier calls in WiredTiger
WT-3293 Make internal symbols externally visible
WT-3296 LAS table fixes/improvements
WT-3297 support the gcc/clang -fvisibility=hidden flag
WT-3300 Coverity 1374542: Dereference after null check
WT-3302 Failure to create cache pool manager thread results in crash when destroying cache pool
WT-3303 Deadlock during first access to lookaside table
WT-3307 FI testing: segfault in python test test_bug013 when fault introduced reading turtle file
WT-3312 encryption btree configuration test
WT-3313 Replace calls to the deprecated LZ4_compress function
WT-3314 clarify error handling
WT-3327 Checkpoints can hang if time runs backward
WT-3331 Test format aborted due to time rollback
WT-3333 Make it possible to store 0 bytes into a 'u' format via Python
WT-3334 static test suite's BaseDataSet class has 'u' value format bugs
WT-3339 The CURSOR_UPDATE_API_CALL macro will dump core on a NULL btree handle
WT-3342 Create a new WiredTiger 2.9.2 release
WT-3343 WiredTiger database close can attempt unlock of a lock that's not held.
WT-3345 Improve rwlock scaling
WT-3348 Lint, Windows warnings.
WT-3351 Recovery assertion failure: old_lognum < lognum
WT-3354 Coverity issues 1375904-1375907
WT-3356 rwlock assertion failure on PPC
Diffstat (limited to 'src/third_party/wiredtiger/src/include/cursor.h')
-rw-r--r-- | src/third_party/wiredtiger/src/include/cursor.h | 58 |
1 files changed, 5 insertions, 53 deletions
diff --git a/src/third_party/wiredtiger/src/include/cursor.h b/src/third_party/wiredtiger/src/include/cursor.h index f32b4250d30..8d2f2c80c2a 100644 --- a/src/third_party/wiredtiger/src/include/cursor.h +++ b/src/third_party/wiredtiger/src/include/cursor.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014-2016 MongoDB, Inc. + * Copyright (c) 2014-2017 MongoDB, Inc. * Copyright (c) 2008-2014 WiredTiger, Inc. * All rights reserved. * @@ -22,8 +22,10 @@ search, \ search_near, \ insert, \ + modify, \ update, \ remove, \ + reserve, \ reconfigure, \ close) \ static const WT_CURSOR n = { \ @@ -43,8 +45,10 @@ search, \ search_near, \ insert, \ + modify, \ update, \ remove, \ + reserve, \ close, \ reconfigure, \ { NULL, NULL }, /* TAILQ_ENTRY q */ \ @@ -497,57 +501,5 @@ struct __wt_cursor_table { #define WT_CURSOR_RECNO(cursor) WT_STREQ((cursor)->key_format, "r") -/* - * WT_CURSOR_NEEDKEY, WT_CURSOR_NEEDVALUE -- - * Check if we have a key/value set. There's an additional semantic - * implemented here: if we're pointing into the tree, and about to perform - * a cursor operation, get a local copy of whatever we're referencing in - * the tree, there's an obvious race with the cursor moving and the key or - * value reference, and it's better to solve it here than in the underlying - * data-source layers. - * - * WT_CURSOR_CHECKKEY -- - * Check if a key is set without making a copy. - * - * WT_CURSOR_NOVALUE -- - * Release any cached value before an operation that could update the - * transaction context and free data a value is pointing to. - */ -#define WT_CURSOR_CHECKKEY(cursor) do { \ - if (!F_ISSET(cursor, WT_CURSTD_KEY_SET)) \ - WT_ERR(__wt_cursor_kv_not_set(cursor, true)); \ -} while (0) -#define WT_CURSOR_CHECKVALUE(cursor) do { \ - if (!F_ISSET(cursor, WT_CURSTD_VALUE_SET)) \ - WT_ERR(__wt_cursor_kv_not_set(cursor, false)); \ -} while (0) -#define WT_CURSOR_NEEDKEY(cursor) do { \ - if (F_ISSET(cursor, WT_CURSTD_KEY_INT)) { \ - if (!WT_DATA_IN_ITEM(&(cursor)->key)) \ - WT_ERR(__wt_buf_set( \ - (WT_SESSION_IMPL *)(cursor)->session, \ - &(cursor)->key, \ - (cursor)->key.data, (cursor)->key.size)); \ - F_CLR(cursor, WT_CURSTD_KEY_INT); \ - F_SET(cursor, WT_CURSTD_KEY_EXT); \ - } \ - WT_CURSOR_CHECKKEY(cursor); \ -} while (0) -#define WT_CURSOR_NEEDVALUE(cursor) do { \ - if (F_ISSET(cursor, WT_CURSTD_VALUE_INT)) { \ - if (!WT_DATA_IN_ITEM(&(cursor)->value)) \ - WT_ERR(__wt_buf_set( \ - (WT_SESSION_IMPL *)(cursor)->session, \ - &(cursor)->value, \ - (cursor)->value.data, (cursor)->value.size));\ - F_CLR(cursor, WT_CURSTD_VALUE_INT); \ - F_SET(cursor, WT_CURSTD_VALUE_EXT); \ - } \ - WT_CURSOR_CHECKVALUE(cursor); \ -} while (0) -#define WT_CURSOR_NOVALUE(cursor) do { \ - F_CLR(cursor, WT_CURSTD_VALUE_INT); \ -} while (0) - #define WT_CURSOR_RAW_OK \ (WT_CURSTD_DUMP_HEX | WT_CURSTD_DUMP_PRINT | WT_CURSTD_RAW) |