From edc92bb1106fa977b1b096890f91f08fca321164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E8=92=99=E6=81=A9?= <1836611252@qq.com> Date: Fri, 5 Feb 2021 16:27:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=87=BD=E6=95=B0=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/gs_guc/pg_guc.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bin/gs_guc/pg_guc.cpp b/src/bin/gs_guc/pg_guc.cpp index 8772ba04b..a13797ccf 100644 --- a/src/bin/gs_guc/pg_guc.cpp +++ b/src/bin/gs_guc/pg_guc.cpp @@ -1023,6 +1023,14 @@ append_string_info(char **optLines, const char *newContext) return optLinesResult; } +/******************************************************************************* + Function : IsLastNotNullReplconninfo + Description : determine if replconninfoX which is being set is the last one valid replconninfo + Input : optLines - postgres.conf info before changing + replconninfoX - replconninfo param name which is being set, eg "replconninfo1" + Output : None + Return : bool +*******************************************************************************/ static bool IsLastNotNullReplconninfo(char** optLines, char* replconninfoX) { int notNullReplconninfoNums = 0; @@ -1044,6 +1052,7 @@ static bool IsLastNotNullReplconninfo(char** optLines, char* replconninfoX) while (p != NULL && isspace((unsigned char)*p)) { ++p; } + /* replconninfoX must be invalid if it is commented*/ if (p != NULL && strncmp(p, replconninfoX, strlen(replconninfoX)) == 0) { return false; } @@ -1075,6 +1084,7 @@ static bool IsLastNotNullReplconninfo(char** optLines, char* replconninfoX) } } } + /* return true if replconninfoX which is being set is the last one valid replconninfo */ if (notNullReplconninfoNums == 1 && !isReplconninfoXNull) { return true; } @@ -1171,7 +1181,7 @@ do_gucset(const char *action_type, const char *data_dir) GS_FREE(azString); } } - + /* Give a warning if the last valid replconninfo is set to a invalid value currently */ if (strncmp(config_param[i], "replconninfo", strlen("replconninfo")) == 0 && config_value[i] != NULL && (strlen(config_value[i]) == 0 || strncmp(config_value[i], "''", strlen("''")) == 0) && IsLastNotNullReplconninfo(opt_lines, config_param[i])) {