diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c')
-rw-r--r-- | src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c index b238d2dfd3a..b27342c3f93 100644 --- a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c +++ b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c @@ -151,8 +151,10 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW WT_DECL_RET; WT_ITEM full_value; WT_UPDATE *hs_upd, *upd; - wt_timestamp_t durable_ts, hs_start_ts, hs_stop_ts, newer_hs_ts; - size_t size; + wt_timestamp_t durable_ts, hs_start_ts, hs_stop_ts; +#ifdef HAVE_DIAGNOSTIC + wt_timestamp_t newer_hs_ts; +#endif uint64_t hs_counter, type_full; uint32_t hs_btree_id, session_flags; uint8_t type; @@ -162,7 +164,10 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW hs_cursor = NULL; hs_upd = upd = NULL; - durable_ts = hs_start_ts = newer_hs_ts = WT_TS_NONE; + durable_ts = hs_start_ts = WT_TS_NONE; +#ifdef HAVE_DIAGNOSTIC + newer_hs_ts = WT_TS_NONE; +#endif hs_btree_id = S2BT(session)->id; session_flags = 0; is_owner = valid_update_found = false; @@ -271,12 +276,14 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW __wt_timestamp_to_string(hs_stop_ts, ts_string[2]), __wt_timestamp_to_string(rollback_timestamp, ts_string[3])); +#ifdef HAVE_DIAGNOSTIC /* * Durable timestamp of the current record is used as stop timestamp of previous record. * Save it to verify against previous record. */ newer_hs_ts = durable_ts; - WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd)); +#endif + WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd, NULL)); WT_ERR(__wt_hs_modify(cbt, hs_upd)); WT_STAT_CONN_INCR(session, txn_rts_hs_removed); hs_upd = NULL; @@ -288,7 +295,7 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW * list. Otherwise remove the key by adding a tombstone. */ if (valid_update_found) { - WT_ERR(__wt_update_alloc(session, &full_value, &upd, &size, WT_UPDATE_STANDARD)); + WT_ERR(__wt_upd_alloc(session, &full_value, WT_UPDATE_STANDARD, &upd, NULL)); upd->txnid = WT_TXN_NONE; upd->durable_ts = durable_ts; @@ -304,7 +311,7 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW */ F_SET(upd, WT_UPDATE_RESTORED_FOR_ROLLBACK); } else { - WT_ERR(__wt_upd_alloc_tombstone(session, &upd)); + WT_ERR(__wt_upd_alloc_tombstone(session, &upd, NULL)); WT_STAT_CONN_INCR(session, txn_rts_keys_removed); __wt_verbose(session, WT_VERB_RTS, "%p: key removed", (void *)key); } @@ -315,7 +322,7 @@ __rollback_row_ondisk_fixup_key(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW /* Finally remove that update from history store. */ if (valid_update_found) { - WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd)); + WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd, NULL)); WT_ERR(__wt_hs_modify(cbt, hs_upd)); WT_STAT_CONN_INCR(session, txn_rts_hs_removed); hs_upd = NULL; @@ -345,7 +352,6 @@ __rollback_abort_row_ondisk_kv( WT_DECL_RET; WT_ITEM buf; WT_UPDATE *upd; - size_t size; char ts_string[3][WT_TS_INT_STRING_SIZE]; vpack = &_vpack; @@ -365,7 +371,7 @@ __rollback_abort_row_ondisk_kv( * In-memory database don't have a history store to provide a stable update, so remove * the key. */ - WT_RET(__wt_upd_alloc_tombstone(session, &upd)); + WT_RET(__wt_upd_alloc_tombstone(session, &upd, NULL)); WT_STAT_CONN_INCR(session, txn_rts_keys_removed); } } else if (vpack->durable_stop_ts != WT_TS_NONE && @@ -384,7 +390,7 @@ __rollback_abort_row_ondisk_kv( /* Take the value from the original page cell. */ WT_RET(__wt_page_cell_data_ref(session, page, vpack, &buf)); - WT_RET(__wt_update_alloc(session, &buf, &upd, &size, WT_UPDATE_STANDARD)); + WT_RET(__wt_upd_alloc(session, &buf, WT_UPDATE_STANDARD, &upd, NULL)); upd->txnid = vpack->start_txn; upd->durable_ts = vpack->durable_start_ts; upd->start_ts = vpack->start_ts; @@ -957,7 +963,7 @@ __rollback_to_stable_btree_hs_truncate(WT_SESSION_IMPL *session, uint32_t btree_ "rollback to stable history store cleanup of update with start timestamp: %s", __wt_timestamp_to_string(hs_start_ts, ts_string)); - WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd)); + WT_ERR(__wt_upd_alloc_tombstone(session, &hs_upd, NULL)); WT_ERR(__wt_hs_modify(cbt, hs_upd)); WT_STAT_CONN_INCR(session, txn_rts_hs_removed); hs_upd = NULL; |