From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon, 5 Jan 2009 13:23:33 +0000 (+0000)
Subject: Fix define_custom_variable to preserve any sourcefile/sourceline information
X-Git-Tag: REL8_4_BETA1~477
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=35c129cab31ae64ee882bdc4867d889be3d905fa;p=postgresql

Fix define_custom_variable to preserve any sourcefile/sourceline information
present in the placeholder.  Noted while testing pg_stat_statements.
---

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 <peter_e@gmx.net>.
  *
  * 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