diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/btree/bt_curnext.c')
-rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_curnext.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/third_party/wiredtiger/src/btree/bt_curnext.c b/src/third_party/wiredtiger/src/btree/bt_curnext.c index 02cceab3123..c9cccc63bf6 100644 --- a/src/third_party/wiredtiger/src/btree/bt_curnext.c +++ b/src/third_party/wiredtiger/src/btree/bt_curnext.c @@ -429,7 +429,8 @@ __cursor_key_order_check_row( WT_ERR(__wt_scr_alloc(session, 512, &b)); WT_PANIC_ERR(session, EINVAL, - "WT_CURSOR.%s out-of-order returns: returned key %s then key %s", + "WT_CURSOR.%s out-of-order returns: returned key %.1024s then " + "key %.1024s", next ? "next" : "prev", __wt_buf_set_printable_format(session, cbt->lastkey->data, cbt->lastkey->size, btree->key_format, a), @@ -456,7 +457,7 @@ __wt_cursor_key_order_check( return (__cursor_key_order_check_col(session, cbt, next)); case WT_PAGE_ROW_LEAF: return (__cursor_key_order_check_row(session, cbt, next)); - WT_ILLEGAL_VALUE(session); + WT_ILLEGAL_VALUE(session, cbt->ref->page->type); } /* NOTREACHED */ } @@ -481,7 +482,7 @@ __wt_cursor_key_order_init(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) case WT_PAGE_ROW_LEAF: return (__wt_buf_set(session, cbt->lastkey, cbt->iface.key.data, cbt->iface.key.size)); - WT_ILLEGAL_VALUE(session); + WT_ILLEGAL_VALUE(session, cbt->ref->page->type); } /* NOTREACHED */ } @@ -641,7 +642,7 @@ __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating) case WT_PAGE_COL_VAR: ret = __cursor_var_append_next(cbt, newpage); break; - WT_ILLEGAL_VALUE_ERR(session); + WT_ILLEGAL_VALUE_ERR(session, page->type); } if (ret == 0) break; @@ -659,7 +660,7 @@ __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating) case WT_PAGE_ROW_LEAF: ret = __cursor_row_next(cbt, newpage); break; - WT_ILLEGAL_VALUE_ERR(session); + WT_ILLEGAL_VALUE_ERR(session, page->type); } if (ret != WT_NOTFOUND) break; @@ -690,6 +691,8 @@ __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating) __wt_page_evict_soon(session, cbt->ref); cbt->page_deleted_count = 0; + if (F_ISSET(cbt, WT_CBT_READ_ONCE)) + LF_SET(WT_READ_WONT_NEED); WT_ERR(__wt_tree_walk(session, &cbt->ref, flags)); WT_ERR_TEST(cbt->ref == NULL, WT_NOTFOUND); } |