diff --git a/src/storage/transaction/ob_trans_define.cpp b/src/storage/transaction/ob_trans_define.cpp index b76b236e3..dde53ee15 100644 --- a/src/storage/transaction/ob_trans_define.cpp +++ b/src/storage/transaction/ob_trans_define.cpp @@ -57,7 +57,8 @@ OB_SERIALIZE_MEMBER(ObTransSSTableDurableCtxInfo, trans_table_info_, partition_, app_trace_id_str_, partition_log_info_arr_, prev_trans_arr_, can_elr_, max_durable_log_ts_, global_trans_version_, commit_log_checksum_, state_, prepare_version_, max_durable_sql_no_, trans_type_, elr_prepared_state_, is_dup_table_trans_, redo_log_no_, mutator_log_no_, stmt_info_, min_log_ts_, sp_user_request_, need_checksum_, - prepare_log_id_, prepare_log_timestamp_, clear_log_base_ts_, min_log_id_); + prepare_log_id_, prepare_log_timestamp_, clear_log_base_ts_, min_log_id_, + prev_checkpoint_id_, has_trans_state_log_); OB_SERIALIZE_MEMBER(ObXATransID, gtrid_str_, bqual_str_, format_id_); int64_t ObTransID::s_inc_num = 1; diff --git a/src/storage/transaction/ob_trans_define.h b/src/storage/transaction/ob_trans_define.h index 783360c21..8a2ca0339 100644 --- a/src/storage/transaction/ob_trans_define.h +++ b/src/storage/transaction/ob_trans_define.h @@ -3552,6 +3552,7 @@ public: prepare_log_timestamp_ = 0; clear_log_base_ts_ = 0; prev_checkpoint_id_ = 0; + has_trans_state_log_ = false; } void destroy() { @@ -3563,7 +3564,7 @@ public: K_(global_trans_version), K_(commit_log_checksum), K_(state), K_(prepare_version), K_(max_durable_sql_no), K_(trans_type), K_(elr_prepared_state), K_(is_dup_table_trans), K_(redo_log_no), K_(mutator_log_no), K_(stmt_info), K_(min_log_ts), K_(min_log_id), K_(sp_user_request), K_(need_checksum), K_(prepare_log_id), - K_(prepare_log_timestamp), K_(prev_checkpoint_id)); + K_(prepare_log_timestamp), K_(prev_checkpoint_id), K_(has_trans_state_log)); ObTransTableStatusInfo trans_table_info_; common::ObPartitionKey partition_; ObStartTransParam trans_param_; @@ -3599,6 +3600,7 @@ public: int64_t prepare_log_timestamp_; int64_t clear_log_base_ts_; uint64_t prev_checkpoint_id_; + bool has_trans_state_log_; }; struct CtxInfo final { diff --git a/src/storage/transaction/ob_trans_part_ctx.cpp b/src/storage/transaction/ob_trans_part_ctx.cpp index 797117231..c5c8a059e 100644 --- a/src/storage/transaction/ob_trans_part_ctx.cpp +++ b/src/storage/transaction/ob_trans_part_ctx.cpp @@ -10602,6 +10602,7 @@ int ObPartTransCtx::recover_from_trans_sstable_durable_ctx_info(ObTransSSTableDu clear_log_base_ts_ = ctx_info.clear_log_base_ts_; // for record log prev_checkpoint_id_ = ctx_info.prev_checkpoint_id_; + has_trans_state_log_ = ctx_info.has_trans_state_log_; (void)mark_dirty_trans(); @@ -10684,6 +10685,7 @@ int ObPartTransCtx::get_trans_sstable_durable_ctx_info(const int64_t log_ts, ObT info.prepare_log_timestamp_ = prepare_log_timestamp_; info.clear_log_base_ts_ = clear_log_base_ts_; info.prev_checkpoint_id_ = prev_checkpoint_id_; + info.has_trans_state_log_ = has_trans_state_log_; TRANS_LOG(INFO, "trans table status when dump trans table", K(*this), K(info), K(log_ts)); }