From 226732574014add6ec64f08503d8d192c240d16d Mon Sep 17 00:00:00 2001 From: zhangyukai Date: Wed, 20 Nov 2024 19:57:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=86=85=E7=BD=AE=E5=87=BD?= =?UTF-8?q?=E6=95=B0query=5Fnode=5Freform=5Finfo=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=E8=8E=B7=E5=8F=96=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/adt/pgstatfuncs.cpp | 20 +++++++++++++++---- .../ddes/adapter/ss_dms_callback.cpp | 9 +++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/common/backend/utils/adt/pgstatfuncs.cpp b/src/common/backend/utils/adt/pgstatfuncs.cpp index 1d5889f19..a209441c2 100644 --- a/src/common/backend/utils/adt/pgstatfuncs.cpp +++ b/src/common/backend/utils/adt/pgstatfuncs.cpp @@ -15208,14 +15208,26 @@ Datum query_node_reform_info(PG_FUNCTION_ARGS) values[4] = BoolGetDatum(reform_info.reform_success); if (reform_info.reform_type == DMS_REFORM_TYPE_FOR_FAILOVER_OPENGAUSS) { - values[5] = TimestampTzGetDatum(reform_info.redo_start_time); - if (reform_info.redo_start_time > reform_info.redo_end_time) { + if (reform_info.redo_start_time == 0) { + nulls[5] = true; + } else { + values[5] = TimestampTzGetDatum(reform_info.redo_start_time); + } + if ((reform_info.redo_start_time > reform_info.redo_end_time) || reform_info.redo_end_time == 0) { nulls[6] = true; } else { values[6] = TimestampTzGetDatum(reform_info.redo_end_time); } - values[7] = UInt64GetDatum(reform_info.redo_total_bytes); - values[8] = TimestampTzGetDatum(reform_info.construct_hashmap); + if (reform_info.redo_total_bytes == 0) { + nulls[7] = true; + } else { + values[7] = UInt64GetDatum(reform_info.redo_total_bytes); + } + if (reform_info.construct_hashmap == 0) { + nulls[8] = true; + } else { + values[8] = TimestampTzGetDatum(reform_info.construct_hashmap); + } } else { values[7] = UInt64GetDatum(-1); nulls[5] = true; diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index 63e59b873..ed87ffba0 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -58,6 +58,14 @@ static void ReleaseResource(); +static inline void IniRedoInfo() +{ + g_instance.dms_cxt.SSReformInfo.redo_start_time = 0; + g_instance.dms_cxt.SSReformInfo.redo_end_time = 0; + g_instance.dms_cxt.SSReformInfo.construct_hashmap = 0; + g_instance.dms_cxt.SSReformInfo.redo_total_bytes = 0; +} + /* * Wake up startup process to replay WAL, or to notice that * failover has been requested. @@ -2027,6 +2035,7 @@ static void CBReformStartNotify(void *db_handle, dms_reform_start_context_t *rs_ reform_info->bitmap_nodes = rs_cxt->bitmap_participated; reform_info->bitmap_reconnect = rs_cxt->bitmap_reconnect; reform_info->dms_role = rs_cxt->role; + IniRedoInfo(); if (!ENABLE_SS_BCAST_GETOLDESTXMIN) { SSXminInfoPrepare(); }