From: Teodor Sigaev Date: Thu, 14 Feb 2019 20:18:39 +0000 (+0300) Subject: also check IsTransactionState, it helps support of pg_reload_config X-Git-Url: http://sigaev.ru/git/gitweb.cgi?p=plantuner.git;a=commitdiff_plain;h=3c3fe972db47384cef46dbf3f286bda95667d867 also check IsTransactionState, it helps support of pg_reload_config --- diff --git a/plantuner.c b/plantuner.c index 050e3b7..3c5c6c7 100644 --- a/plantuner.c +++ b/plantuner.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -77,6 +78,23 @@ indexesAssign(const char * newval, bool doit, GucSource source, bool isDisable) if (!SplitIdentifierString(rawname, ',', &namelist)) goto cleanup; + /* + * follow work could be done only in normal processing because of + * accsess to system catalog + */ + if (MyBackendId == InvalidBackendId || !IsUnderPostmaster || + !IsNormalProcessingMode() || MyAuxProcType != NotAnAuxProcess || + !IsTransactionState()) + { + /* reset init state */ + if (isDisable) + plantuner_disable_inited = false; + else + plantuner_enable_inited = false; + + return newval; + } + if (doit) { nOids = list_length(namelist); @@ -86,14 +104,6 @@ indexesAssign(const char * newval, bool doit, GucSource source, bool isDisable) (int)(sizeof(Oid) * (nOids+1))); } - /* - * follow work could be done only in normal processing because of - * accsess to system catalog - */ - if (MyBackendId == InvalidBackendId || !IsUnderPostmaster || - !IsNormalProcessingMode() || MyAuxProcType != NotAnAuxProcess) - return newval; - if (isDisable) plantuner_disable_inited = true; else