diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2008-09-10 18:09:20 +0000 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2008-09-10 18:09:20 +0000 |
commit | 3b9ec4682c2f1baeeeba10b6d782386656a98f4a (patch) | |
tree | 23c9dc2306aea80cbd7bf8f45232ddeb4ac6e527 /src/backend/utils/misc/guc-file.l | |
parent | bacf7b2086d971e8b3f65eea00b5550db6fa9614 (diff) |
Add "source file" and "source line" information to each GUC variable.
initdb forced due to changes in the pg_settings view.
Magnus Hagander and Alvaro Herrera.
Diffstat (limited to 'src/backend/utils/misc/guc-file.l')
-rw-r--r-- | src/backend/utils/misc/guc-file.l | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l index a95a35d2f75..5b4a68635b7 100644 --- a/src/backend/utils/misc/guc-file.l +++ b/src/backend/utils/misc/guc-file.l @@ -4,7 +4,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.56 2008/08/22 00:20:40 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.57 2008/09/10 18:09:19 alvherre Exp $ */ %{ @@ -39,6 +39,8 @@ struct name_value_pair { char *name; char *value; + char *filename; + int sourceline; struct name_value_pair *next; }; @@ -307,8 +309,12 @@ ProcessConfigFile(GucContext context) /* If we got here all the options checked out okay, so apply them. */ for (item = head; item; item = item->next) { - set_config_option(item->name, item->value, context, - PGC_S_FILE, GUC_ACTION_SET, true); + if (set_config_option(item->name, item->value, context, + PGC_S_FILE, GUC_ACTION_SET, true)) + { + set_config_sourcefile(item->name, item->filename, + item->sourceline); + } } /* Remember when we last successfully loaded the config file. */ @@ -483,6 +489,8 @@ ParseConfigFile(const char *config_file, const char *calling_file, pfree(item->value); item->name = opt_name; item->value = opt_value; + item->filename = pstrdup(config_file); + item->sourceline = ConfigFileLineno-1; } else { @@ -490,6 +498,8 @@ ParseConfigFile(const char *config_file, const char *calling_file, item = palloc(sizeof *item); item->name = opt_name; item->value = opt_value; + item->filename = pstrdup(config_file); + item->sourceline = ConfigFileLineno-1; item->next = *head_p; *head_p = item; if (*tail_p == NULL) @@ -502,6 +512,8 @@ ParseConfigFile(const char *config_file, const char *calling_file, item = palloc(sizeof *item); item->name = opt_name; item->value = opt_value; + item->filename = pstrdup(config_file); + item->sourceline = ConfigFileLineno-1; item->next = NULL; if (*head_p == NULL) *head_p = item; @@ -553,6 +565,7 @@ free_name_value_list(struct name_value_pair *list) pfree(item->name); pfree(item->value); + pfree(item->filename); pfree(item); item = next; } |