!6707 解决内置函数query_node_reform_info部分回放时间/构建时间字段获取异常问题
Merge pull request !6707 from zhangyukai/bugfix_query
This commit is contained in:
@ -15291,14 +15291,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;
|
||||
|
||||
@ -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.
|
||||
@ -2069,6 +2077,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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user