From 35c129cab31ae64ee882bdc4867d889be3d905fa Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 5 Jan 2009 13:23:33 +0000 Subject: [PATCH] Fix define_custom_variable to preserve any sourcefile/sourceline information present in the placeholder. Noted while testing pg_stat_statements. --- src/backend/utils/misc/guc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 303329167a..0f535c8fa0 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.488 2009/01/03 20:03:08 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.489 2009/01/05 13:23:33 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -5747,9 +5747,17 @@ define_custom_variable(struct config_generic * variable) value = *pHolder->variable; if (value) - set_config_option(name, value, - phcontext, pHolder->gen.source, - GUC_ACTION_SET, true); + { + if (set_config_option(name, value, + phcontext, pHolder->gen.source, + GUC_ACTION_SET, true)) + { + /* Also copy over any saved source-location information */ + if (pHolder->gen.sourcefile) + set_config_sourcefile(name, pHolder->gen.sourcefile, + pHolder->gen.sourceline); + } + } /* * Free up as much as we conveniently can of the placeholder structure