diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/include/btree.i')
-rw-r--r-- | src/third_party/wiredtiger/src/include/btree.i | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/src/third_party/wiredtiger/src/include/btree.i b/src/third_party/wiredtiger/src/include/btree.i index cd1952b00d1..7b3ff5b8f3d 100644 --- a/src/third_party/wiredtiger/src/include/btree.i +++ b/src/third_party/wiredtiger/src/include/btree.i @@ -1115,13 +1115,7 @@ __wt_ref_addr_copy(WT_SESSION_IMPL *session, WT_REF *ref, WT_ADDR_COPY *copy) /* If off-page, the pointer references a WT_ADDR structure. */ if (__wt_off_page(page, addr)) { - copy->oldest_start_ts = addr->oldest_start_ts; - copy->oldest_start_txn = addr->oldest_start_txn; - copy->newest_start_durable_ts = addr->newest_start_durable_ts; - copy->newest_stop_ts = addr->newest_stop_ts; - copy->newest_stop_txn = addr->newest_stop_txn; - copy->newest_stop_durable_ts = addr->newest_stop_durable_ts; - copy->prepare = addr->prepare; + __wt_time_aggregate_copy(©->ta, &addr->ta); copy->type = addr->type; memcpy(copy->addr, addr->addr, copy->size = addr->size); return (true); @@ -1129,13 +1123,7 @@ __wt_ref_addr_copy(WT_SESSION_IMPL *session, WT_REF *ref, WT_ADDR_COPY *copy) /* If on-page, the pointer references a cell. */ __wt_cell_unpack(session, page, (WT_CELL *)addr, unpack); - copy->oldest_start_ts = unpack->oldest_start_ts; - copy->oldest_start_txn = unpack->oldest_start_txn; - copy->newest_start_durable_ts = unpack->newest_start_durable_ts; - copy->newest_stop_ts = unpack->newest_stop_ts; - copy->newest_stop_txn = unpack->newest_stop_txn; - copy->newest_stop_durable_ts = unpack->newest_stop_durable_ts; - copy->prepare = F_ISSET(unpack, WT_CELL_UNPACK_PREPARE); + __wt_time_aggregate_copy(©->ta, &unpack->ta); copy->type = 0; /* Avoid static analyzer uninitialized value complaints. */ switch (unpack->raw) { case WT_CELL_ADDR_INT: @@ -1708,25 +1696,14 @@ __wt_page_swap_func(WT_SESSION_IMPL *session, WT_REF *held, WT_REF *want, uint32 */ static inline int __wt_bt_col_var_cursor_walk_txn_read(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_PAGE *page, - WT_CELL_UNPACK *unpack, WT_COL *cip, WT_UPDATE **updp) + WT_CELL_UNPACK *unpack, WT_COL *cip) { - WT_UPDATE *upd; - - *updp = NULL; - cbt->slot = WT_COL_SLOT(page, cip); - WT_RET(__wt_txn_read(session, cbt, NULL, cbt->recno, NULL, unpack, &upd)); - if (upd == NULL) + WT_RET(__wt_txn_read(session, cbt, NULL, cbt->recno, NULL, unpack)); + if (cbt->upd_value->type == WT_UPDATE_INVALID || cbt->upd_value->type == WT_UPDATE_TOMBSTONE) return (0); - if (upd->type == WT_UPDATE_TOMBSTONE) { - if (F_ISSET(upd, WT_UPDATE_RESTORED_FROM_DISK)) - __wt_free_update_list(session, &upd); - return (0); - } - - WT_RET(__wt_value_return(cbt, upd)); - *updp = upd; + WT_RET(__wt_value_return(cbt, cbt->upd_value)); cbt->tmp->data = cbt->iface.value.data; cbt->tmp->size = cbt->iface.value.size; |