summaryrefslogtreecommitdiff
path: root/src/btree/bt_curprev.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/btree/bt_curprev.c')
-rw-r--r--src/btree/bt_curprev.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/btree/bt_curprev.c b/src/btree/bt_curprev.c
index 2dd443ffac1..bf4bdad6529 100644
--- a/src/btree/bt_curprev.c
+++ b/src/btree/bt_curprev.c
@@ -458,13 +458,13 @@ __cursor_row_prev(WT_CURSOR_BTREE *cbt, bool newpage)
if (!F_ISSET_ATOMIC(page, WT_PAGE_BUILD_KEYS))
WT_RET(__wt_row_leaf_keys(session, page));
- if (page->pg_row_entries == 0)
+ if (page->entries == 0)
cbt->ins_head = WT_ROW_INSERT_SMALLEST(page);
else
cbt->ins_head =
- WT_ROW_INSERT_SLOT(page, page->pg_row_entries - 1);
+ WT_ROW_INSERT_SLOT(page, page->entries - 1);
cbt->ins = WT_SKIP_LAST(cbt->ins_head);
- cbt->row_iteration_slot = page->pg_row_entries * 2 + 1;
+ cbt->row_iteration_slot = page->entries * 2 + 1;
cbt->rip_saved = NULL;
goto new_insert;
}
@@ -515,7 +515,7 @@ new_insert: if ((ins = cbt->ins) != NULL) {
cbt->ins = NULL;
cbt->slot = cbt->row_iteration_slot / 2 - 1;
- rip = &page->pg_row_d[cbt->slot];
+ rip = &page->pg_row[cbt->slot];
upd = __wt_txn_read(session, WT_ROW_UPDATE(page, rip));
if (upd != NULL && WT_UPDATE_DELETED_ISSET(upd)) {
if (__wt_txn_visible_all(session, upd->txnid))
@@ -535,20 +535,20 @@ new_insert: if ((ins = cbt->ins) != NULL) {
int
__wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating)
{
+ WT_CURSOR *cursor;
WT_DECL_RET;
WT_PAGE *page;
WT_SESSION_IMPL *session;
uint32_t flags;
bool newpage;
+ cursor = &cbt->iface;
session = (WT_SESSION_IMPL *)cbt->iface.session;
WT_STAT_CONN_INCR(session, cursor_prev);
WT_STAT_DATA_INCR(session, cursor_prev);
- flags = WT_READ_PREV | WT_READ_SKIP_INTL; /* Tree walk flags. */
- if (truncating)
- LF_SET(WT_READ_TRUNCATE);
+ F_CLR(cursor, WT_CURSTD_KEY_SET | WT_CURSTD_VALUE_SET);
WT_RET(__cursor_func_init(cbt, false));
@@ -564,6 +564,9 @@ __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating)
* found. Then, move to the previous page, until we reach the start
* of the file.
*/
+ flags = WT_READ_PREV | WT_READ_SKIP_INTL; /* tree walk flags */
+ if (truncating)
+ LF_SET(WT_READ_TRUNCATE);
for (newpage = false;; newpage = true) {
page = cbt->ref == NULL ? NULL : cbt->ref->page;
@@ -631,6 +634,8 @@ __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating)
if (ret == 0)
WT_ERR(__wt_cursor_key_order_check(session, cbt, false));
#endif
+ if (ret == 0)
+ F_SET(cursor, WT_CURSTD_KEY_INT | WT_CURSTD_VALUE_INT);
err: if (ret != 0)
WT_TRET(__cursor_reset(cbt));