diff --git a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp index e02ccaf654..bcc6d879b1 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp @@ -1434,7 +1434,11 @@ int ObTransCallbackMgr::get_callback_list_stat(ObIArray &s } } else if (OB_SUCC(stats.prepare_allocate(get_callback_list_count()))) { CALLBACK_LISTS_FOREACH(idx, list) { - ret = list->get_stat_for_display(stats.at(idx)); + if (list->get_appended() > 0) { + ret = list->get_stat_for_display(stats.at(idx)); + } else { + stats.at(idx).id_ = -1; // mark as invalid + } } } rwlock_.unlock(); diff --git a/src/storage/memtable/mvcc/ob_tx_callback_list.cpp b/src/storage/memtable/mvcc/ob_tx_callback_list.cpp index da5138883e..6a3a17e4ba 100644 --- a/src/storage/memtable/mvcc/ob_tx_callback_list.cpp +++ b/src/storage/memtable/mvcc/ob_tx_callback_list.cpp @@ -778,7 +778,7 @@ int ObTxCallbackList::get_stat_for_display(ObTxCallbackListStat &stat) const { int ret = OB_SUCCESS; #define _ASSIGN_STAT_(x) stat.x = x; - LST_DO(_ASSIGN_STAT_, (), id_, sync_scn_, checksum_scn_, length_, logged_, removed_); + LST_DO(_ASSIGN_STAT_, (), id_, sync_scn_, length_, logged_, removed_, branch_removed_); #undef __ASSIGN_STAT_ return ret; } diff --git a/src/storage/tx/ob_tx_stat.h b/src/storage/tx/ob_tx_stat.h index dc25c954b9..4d7729c534 100644 --- a/src/storage/tx/ob_tx_stat.h +++ b/src/storage/tx/ob_tx_stat.h @@ -25,21 +25,21 @@ struct ObTxCallbackListStat { int id_; share::SCN sync_scn_; - share::SCN checksum_scn_; int length_; int logged_; int removed_; + int branch_removed_; void reset() {} DECLARE_TO_STRING { int64_t pos = 0; - BUF_PRINTF("(%d,%d,%d,%d,%ld,%ld)", + BUF_PRINTF("[%d,%d,%d,%d,%d,%ld]", id_, length_, logged_, removed_, - (sync_scn_.is_valid() ? sync_scn_.get_val_for_inner_table_field() : -1), - (checksum_scn_.is_valid() ? checksum_scn_.get_val_for_inner_table_field() : -1)); + branch_removed_, + (sync_scn_.is_valid() ? sync_scn_.get_val_for_inner_table_field() : 0)); return pos; } }; @@ -127,8 +127,15 @@ public: { int64_t pos = 0; if (stats_.count() > 0) { - BUF_PRINTF("[id, length, logged, removed, sync_scn, checksum_scn]"); - BUF_PRINTO(stats_); + J_ARRAY_START(); + BUF_PRINTF("\"id, length, logged, removed, branch_removed, sync_scn\""); + for (int i =0; i < stats_.count(); i++) { + if (stats_.at(i).id_ >= 0) { + J_COMMA(); + BUF_PRINTO(stats_.at(i)); + } + } + J_ARRAY_END(); } return pos; }