summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c
diff options
context:
space:
mode:
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.c12
1 files changed, 12 insertions, 0 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 8c3a36a7d5a..faa68261bce 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
@@ -1471,12 +1471,15 @@ __rollback_to_stable_hs_final_pass(WT_SESSION_IMPL *session, wt_timestamp_t roll
{
WT_CONFIG ckptconf;
WT_CONFIG_ITEM cval, durableval, key;
+ WT_CONNECTION_IMPL *conn;
WT_DECL_RET;
wt_timestamp_t max_durable_ts, newest_stop_durable_ts, newest_stop_ts;
+ size_t i;
char *config;
char ts_string[2][WT_TS_INT_STRING_SIZE];
config = NULL;
+ conn = S2C(session);
WT_RET(__wt_metadata_search(session, WT_HS_URI, &config));
@@ -1526,6 +1529,15 @@ __rollback_to_stable_hs_final_pass(WT_SESSION_IMPL *session, wt_timestamp_t roll
WT_TRET(__wt_session_release_dhandle(session));
+ /*
+ * Truncate history store entries from the partial backup remove list. The list holds all of the
+ * btree ids that do not exist as part of the database anymore due to performing a selective
+ * restore from backup.
+ */
+ if (F_ISSET(conn, WT_CONN_BACKUP_PARTIAL_RESTORE) && conn->partial_backup_remove_ids != NULL)
+ for (i = 0; conn->partial_backup_remove_ids[i] != 0; ++i)
+ WT_ERR(
+ __rollback_to_stable_btree_hs_truncate(session, conn->partial_backup_remove_ids[i]));
err:
__wt_free(session, config);
return (ret);