diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/btree/bt_cursor.c')
-rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_cursor.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/src/btree/bt_cursor.c b/src/third_party/wiredtiger/src/btree/bt_cursor.c index 704b258a7dd..1960e4605ef 100644 --- a/src/third_party/wiredtiger/src/btree/bt_cursor.c +++ b/src/third_party/wiredtiger/src/btree/bt_cursor.c @@ -782,7 +782,9 @@ __wt_btcur_next_random(WT_CURSOR_BTREE *cbt) WT_RET(__cursor_func_init(cbt, 1)); - WT_ERR(__wt_row_random(session, cbt)); + WT_WITH_PAGE_INDEX(session, + ret = __wt_row_random(session, cbt)); + WT_ERR(ret); if (__cursor_valid(cbt, &upd)) WT_ERR(__wt_kv_return(session, cbt, upd)); else @@ -948,7 +950,11 @@ __cursor_truncate(WT_SESSION_IMPL *session, } else { do { WT_RET(__wt_btcur_remove(start)); - for (;;) { + /* + * Reset ret each time through so that we don't loop + * forever in the cursor equals case. + */ + for (ret = 0;;) { if (stop != NULL && __cursor_equals(start, stop)) break; @@ -1009,7 +1015,11 @@ __cursor_truncate_fix(WT_SESSION_IMPL *session, } else { do { WT_RET(__wt_btcur_remove(start)); - for (;;) { + /* + * Reset ret each time through so that we don't loop + * forever in the cursor equals case. + */ + for (ret = 0;;) { if (stop != NULL && __cursor_equals(start, stop)) break; |