aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/extension.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-02-08 18:12:17 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2011-02-08 18:12:17 -0500
commit375e5b0a687570eb41fb9e9fda9e5d6992fccffa (patch)
tree285c5d6b2a3ccf74393c77c14edda857fbc82345 /src/backend/commands/extension.c
parent0bc0bd07d41169d6de513967615ad9cb3d0f322e (diff)
downloadpostgresql-375e5b0a687570eb41fb9e9fda9e5d6992fccffa.tar.gz
postgresql-375e5b0a687570eb41fb9e9fda9e5d6992fccffa.zip
Suppress some compiler warnings in recent commits.
Older versions of gcc tend to throw "variable might be clobbered by `longjmp' or `vfork'" warnings whenever a variable is assigned in more than one place and then used after the end of a PG_TRY block. That's reasonably easy to work around in execute_extension_script, and the overhead of unconditionally saving/restoring the GUC variables seems unlikely to be a serious concern. Also clean up logic in ATExecValidateConstraint to make it easier to read and less likely to provoke "variable might be used uninitialized in this function" warnings.
Diffstat (limited to 'src/backend/commands/extension.c')
-rw-r--r--src/backend/commands/extension.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 50032031976..ee42d2e13df 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -521,8 +521,8 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
const char *schemaName, Oid schemaOid)
{
char *filename = get_extension_absolute_path(control->script);
- char *save_client_min_messages = NULL,
- *save_log_min_messages = NULL,
+ char *save_client_min_messages,
+ *save_log_min_messages,
*save_search_path;
StringInfoData pathbuf;
ListCell *lc;
@@ -535,23 +535,19 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
* We use the equivalent of SET LOCAL to ensure the setting is undone
* upon error.
*/
+ save_client_min_messages =
+ pstrdup(GetConfigOption("client_min_messages", false));
if (client_min_messages < WARNING)
- {
- save_client_min_messages =
- pstrdup(GetConfigOption("client_min_messages", false));
(void) set_config_option("client_min_messages", "warning",
PGC_USERSET, PGC_S_SESSION,
GUC_ACTION_LOCAL, true);
- }
+ save_log_min_messages =
+ pstrdup(GetConfigOption("log_min_messages", false));
if (log_min_messages < WARNING)
- {
- save_log_min_messages =
- pstrdup(GetConfigOption("log_min_messages", false));
(void) set_config_option("log_min_messages", "warning",
PGC_SUSET, PGC_S_SESSION,
GUC_ACTION_LOCAL, true);
- }
/*
* Set up the search path to contain the target schema, then the schemas
@@ -631,15 +627,12 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
(void) set_config_option("search_path", save_search_path,
PGC_USERSET, PGC_S_SESSION,
GUC_ACTION_LOCAL, true);
-
- if (save_client_min_messages != NULL)
- (void) set_config_option("client_min_messages", save_client_min_messages,
- PGC_USERSET, PGC_S_SESSION,
- GUC_ACTION_LOCAL, true);
- if (save_log_min_messages != NULL)
- (void) set_config_option("log_min_messages", save_log_min_messages,
- PGC_SUSET, PGC_S_SESSION,
- GUC_ACTION_LOCAL, true);
+ (void) set_config_option("client_min_messages", save_client_min_messages,
+ PGC_USERSET, PGC_S_SESSION,
+ GUC_ACTION_LOCAL, true);
+ (void) set_config_option("log_min_messages", save_log_min_messages,
+ PGC_SUSET, PGC_S_SESSION,
+ GUC_ACTION_LOCAL, true);
}
/*