|
4 | 4 | *
|
5 | 5 | * Copyright (c) 2000-2009, PostgreSQL Global Development Group
|
6 | 6 | *
|
7 |
| - * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.62 2009/10/03 18:04:57 tgl Exp $ |
| 7 | + * $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.63 2009/11/12 18:20:23 tgl Exp $ |
8 | 8 | */
|
9 | 9 |
|
10 | 10 | %{
|
@@ -316,18 +316,33 @@ ProcessConfigFile(GucContext context)
|
316 | 316 |
|
317 | 317 | /* In SIGHUP cases in the postmaster, report changes */
|
318 | 318 | if (context == PGC_SIGHUP && !IsUnderPostmaster)
|
319 |
| -pre_value =pstrdup(GetConfigOption(item->name,false)); |
| 319 | +{ |
| 320 | +constchar *preval =GetConfigOption(item->name,false); |
| 321 | + |
| 322 | +/* string variables could be NULL; treat that as empty */ |
| 323 | +if (!preval) |
| 324 | +preval =""; |
| 325 | +/* must dup, else might have dangling pointer below */ |
| 326 | +pre_value =pstrdup(preval); |
| 327 | +} |
320 | 328 |
|
321 | 329 | if (set_config_option(item->name, item->value, context,
|
322 | 330 | PGC_S_FILE, GUC_ACTION_SET,true))
|
323 | 331 | {
|
324 | 332 | set_config_sourcefile(item->name, item->filename,
|
325 | 333 | item->sourceline);
|
326 |
| -if (pre_value && |
327 |
| -strcmp(pre_value,GetConfigOption(item->name,false)) !=0) |
328 |
| -ereport(elevel, |
329 |
| -(errmsg("parameter\"%s\" changed to\"%s\"", |
330 |
| -item->name, item->value))); |
| 334 | + |
| 335 | +if (pre_value) |
| 336 | +{ |
| 337 | +constchar *post_value =GetConfigOption(item->name,false); |
| 338 | + |
| 339 | +if (!post_value) |
| 340 | +post_value =""; |
| 341 | +if (strcmp(pre_value, post_value) !=0) |
| 342 | +ereport(elevel, |
| 343 | +(errmsg("parameter\"%s\" changed to\"%s\"", |
| 344 | +item->name, item->value))); |
| 345 | +} |
331 | 346 | }
|
332 | 347 |
|
333 | 348 | if (pre_value)
|
|