From 9014fc52614202e07fb115511f72d0f964e565a2 Mon Sep 17 00:00:00 2001 From: openGaussDev Date: Thu, 10 Mar 2022 14:51:29 +0800 Subject: [PATCH] fix mock password Offering: openGaussDev More detail: fix mock password Match-id-55ca9762c2d8270a6b5458977f906b00f6b777f2 --- src/common/backend/utils/error/elog.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/common/backend/utils/error/elog.cpp b/src/common/backend/utils/error/elog.cpp index 95934c221..b2cebd796 100644 --- a/src/common/backend/utils/error/elog.cpp +++ b/src/common/backend/utils/error/elog.cpp @@ -4254,6 +4254,7 @@ static char* mask_Password_internal(const char* query_string) /* the function list need mask */ const char* funcs[] = {"dblink_connect", "create_credential", "pg_create_physical_replication_slot_extern"}; int funcNum = sizeof(funcs) / sizeof(funcs[0]); + bool isCreateSlot = false; int position[16] = {0}; int length[16] = {0}; int idx = 0; @@ -4603,6 +4604,9 @@ static char* mask_Password_internal(const char* query_string) /* first, check funcs[] */ for (i = 0; i < funcNum; ++i) { if (pg_strcasecmp(yylval.str, funcs[i]) == 0) { + if (pg_strcasecmp(yylval.str, "pg_create_physical_replication_slot_extern") == 0) { + isCreateSlot = true; + } curStmtType = 8; break; } @@ -4967,7 +4971,13 @@ static char* mask_Password_internal(const char* query_string) pfree_ext(yyextra.literalbuf); } - return mask_string; + if (isCreateSlot) { + pfree(mask_string); + return MemoryContextStrdup(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_SECURITY), + "select * from pg_create_physical_replication_slot_extern"); + } else { + return mask_string; + } } static void eraseSingleQuotes(char* query_string)