summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/cursor/cur_std.c
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2018-01-05 22:07:41 +1100
committerLuke Chen <luke.chen@mongodb.com>2018-01-05 22:07:41 +1100
commitbd9ed5bbe07754221ad014dceefc0ebdb0ecab32 (patch)
tree622a3cc94249954a7bf0757231c40792c9ef5378 /src/third_party/wiredtiger/src/cursor/cur_std.c
parent2158ea8d6c84c9a68b50f76c9dd23b8a193b65f8 (diff)
downloadmongo-bd9ed5bbe07754221ad014dceefc0ebdb0ecab32.tar.gz
Import wiredtiger: 9e5044823185feffa71e56a6593cfb92e0741a41 from branch mongodb-3.8
ref: 1a29eac4dc..9e50448231 for: 3.7.1 WT-2705 High throughput cache bound many threaded workloads can experience long latencies WT-3725 Add statistics to locks around timestamp structures WT-3750 Fast-path fs_directory_list of a single file. WT-3768 Lookaside optimization: birthmarks WT-3769 Fix a bug in reverse cursor walks with particular delete patterns and prefix compression enabled WT-3779 Add support for string formats with WT_CURSOR::modify WT-3800 test_wt2834_join_bloom_fix hang WT-3806 Make sure rdtsc values move forward in time WT-3807 clang static analysis updates WT-3810 wt_rdtsc calibration needs to be longer and verify validity WT-3812 debugging page output should handle complex key/value items. WT-3816 Enable prefix compression on the lookaside table WT-3819 clang static analysis improvements WT-3820 Add a WT_SESSION.breakpoint method for Python debugging. WT-3822 Update WiredTiger copyrights to 2018 WT-3824 tsc_nsec_ratio can compute to zero and cause divide by zero bug
Diffstat (limited to 'src/third_party/wiredtiger/src/cursor/cur_std.c')
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_std.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/third_party/wiredtiger/src/cursor/cur_std.c b/src/third_party/wiredtiger/src/cursor/cur_std.c
index 6027b1ecdd6..d7b23be75d6 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_std.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_std.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2014-2017 MongoDB, Inc.
+ * Copyright (c) 2014-2018 MongoDB, Inc.
* Copyright (c) 2008-2014 WiredTiger, Inc.
* All rights reserved.
*
@@ -104,7 +104,8 @@ __wt_cursor_modify_notsup(WT_CURSOR *cursor, WT_MODIFY *entries, int nentries)
if (cursor->value_format != NULL && strlen(cursor->value_format) != 0) {
session = (WT_SESSION_IMPL *)cursor->session;
WT_RET_MSG(session, ENOTSUP,
- "WT_CURSOR.modify only supported for 'u' value formats");
+ "WT_CURSOR.modify only supported for 'S' and 'u' value "
+ "formats");
}
return (__wt_cursor_notsup(cursor));
}
@@ -633,8 +634,7 @@ __cursor_modify(WT_CURSOR *cursor, WT_MODIFY *entries, int nentries)
/* Get the current value, apply the modifications. */
WT_ERR(cursor->search(cursor));
- WT_ERR(__wt_modify_apply_api(
- session, &cursor->value, entries, nentries));
+ WT_ERR(__wt_modify_apply_api(session, cursor, entries, nentries));
/* We know both key and value are set, "overwrite" doesn't matter. */
ret = cursor->update(cursor);
@@ -821,10 +821,11 @@ __wt_cursor_init(WT_CURSOR *cursor,
F_SET(cursor, WT_CURSTD_RAW);
/*
- * WT_CURSOR.modify supported on 'u' value formats, but may have been
- * already initialized (file cursors have a faster implementation).
+ * WT_CURSOR.modify supported on 'S' and 'u' value formats, but may have
+ * been already initialized (file cursors have a faster implementation).
*/
- if (WT_STREQ(cursor->value_format, "u") &&
+ if ((WT_STREQ(cursor->value_format, "S") ||
+ WT_STREQ(cursor->value_format, "u")) &&
cursor->modify == __wt_cursor_modify_notsup)
cursor->modify = __cursor_modify;