Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0894c6b

Browse files
committed
The recent patch to log changes in postgresql.conf settings dumped core
if the initial value of a string variable was NULL, which is entirelypossible. Noted while experimenting with custom_variable_classes.
1 parent8539a0e commit0894c6b

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

‎src/backend/utils/misc/guc-file.l

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
66
*
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 $
88
*/
99

1010
%{
@@ -316,18 +316,33 @@ ProcessConfigFile(GucContext context)
316316

317317
/* In SIGHUP cases in the postmaster, report changes */
318318
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+
}
320328

321329
if (set_config_option(item->name, item->value, context,
322330
PGC_S_FILE, GUC_ACTION_SET,true))
323331
{
324332
set_config_sourcefile(item->name, item->filename,
325333
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+
}
331346
}
332347

333348
if (pre_value)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp