mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Fix GUC's reports of assign_hook failure to always include the parameter value
we failed to assign, even in "can't happen" cases. Motivated by wondering what's going on in a recent trouble report where "failed to commit" did happen.
This commit is contained in:
parent
24a814f441
commit
248891f017
@ -10,7 +10,7 @@
|
|||||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.497 2009/03/09 14:34:34 petere Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.498 2009/04/02 03:51:43 tgl Exp $
|
||||||
*
|
*
|
||||||
*--------------------------------------------------------------------
|
*--------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -3578,7 +3578,8 @@ ResetAllOptions(void)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (conf->reset_val, true,
|
if (!(*conf->assign_hook) (conf->reset_val, true,
|
||||||
PGC_S_SESSION))
|
PGC_S_SESSION))
|
||||||
elog(ERROR, "failed to reset %s", conf->gen.name);
|
elog(ERROR, "failed to reset %s to %d",
|
||||||
|
conf->gen.name, (int) conf->reset_val);
|
||||||
*conf->variable = conf->reset_val;
|
*conf->variable = conf->reset_val;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3589,7 +3590,8 @@ ResetAllOptions(void)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (conf->reset_val, true,
|
if (!(*conf->assign_hook) (conf->reset_val, true,
|
||||||
PGC_S_SESSION))
|
PGC_S_SESSION))
|
||||||
elog(ERROR, "failed to reset %s", conf->gen.name);
|
elog(ERROR, "failed to reset %s to %d",
|
||||||
|
conf->gen.name, conf->reset_val);
|
||||||
*conf->variable = conf->reset_val;
|
*conf->variable = conf->reset_val;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3600,7 +3602,8 @@ ResetAllOptions(void)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (conf->reset_val, true,
|
if (!(*conf->assign_hook) (conf->reset_val, true,
|
||||||
PGC_S_SESSION))
|
PGC_S_SESSION))
|
||||||
elog(ERROR, "failed to reset %s", conf->gen.name);
|
elog(ERROR, "failed to reset %s to %g",
|
||||||
|
conf->gen.name, conf->reset_val);
|
||||||
*conf->variable = conf->reset_val;
|
*conf->variable = conf->reset_val;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3619,7 +3622,8 @@ ResetAllOptions(void)
|
|||||||
newstr = (*conf->assign_hook) (str, true,
|
newstr = (*conf->assign_hook) (str, true,
|
||||||
PGC_S_SESSION);
|
PGC_S_SESSION);
|
||||||
if (newstr == NULL)
|
if (newstr == NULL)
|
||||||
elog(ERROR, "failed to reset %s", conf->gen.name);
|
elog(ERROR, "failed to reset %s to \"%s\"",
|
||||||
|
conf->gen.name, str);
|
||||||
else if (newstr != str)
|
else if (newstr != str)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -3639,7 +3643,9 @@ ResetAllOptions(void)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (conf->reset_val, true,
|
if (!(*conf->assign_hook) (conf->reset_val, true,
|
||||||
PGC_S_SESSION))
|
PGC_S_SESSION))
|
||||||
elog(ERROR, "failed to reset %s", conf->gen.name);
|
elog(ERROR, "failed to reset %s to %s",
|
||||||
|
conf->gen.name,
|
||||||
|
config_enum_lookup_by_value(conf, conf->reset_val));
|
||||||
*conf->variable = conf->reset_val;
|
*conf->variable = conf->reset_val;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3910,8 +3916,8 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (newval,
|
if (!(*conf->assign_hook) (newval,
|
||||||
true, PGC_S_OVERRIDE))
|
true, PGC_S_OVERRIDE))
|
||||||
elog(LOG, "failed to commit %s",
|
elog(LOG, "failed to commit %s as %d",
|
||||||
conf->gen.name);
|
conf->gen.name, (int) newval);
|
||||||
*conf->variable = newval;
|
*conf->variable = newval;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
@ -3927,8 +3933,8 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (newval,
|
if (!(*conf->assign_hook) (newval,
|
||||||
true, PGC_S_OVERRIDE))
|
true, PGC_S_OVERRIDE))
|
||||||
elog(LOG, "failed to commit %s",
|
elog(LOG, "failed to commit %s as %d",
|
||||||
conf->gen.name);
|
conf->gen.name, newval);
|
||||||
*conf->variable = newval;
|
*conf->variable = newval;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
@ -3944,8 +3950,8 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (newval,
|
if (!(*conf->assign_hook) (newval,
|
||||||
true, PGC_S_OVERRIDE))
|
true, PGC_S_OVERRIDE))
|
||||||
elog(LOG, "failed to commit %s",
|
elog(LOG, "failed to commit %s as %g",
|
||||||
conf->gen.name);
|
conf->gen.name, newval);
|
||||||
*conf->variable = newval;
|
*conf->variable = newval;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
@ -3965,8 +3971,8 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
|
|||||||
newstr = (*conf->assign_hook) (newval, true,
|
newstr = (*conf->assign_hook) (newval, true,
|
||||||
PGC_S_OVERRIDE);
|
PGC_S_OVERRIDE);
|
||||||
if (newstr == NULL)
|
if (newstr == NULL)
|
||||||
elog(LOG, "failed to commit %s",
|
elog(LOG, "failed to commit %s as \"%s\"",
|
||||||
conf->gen.name);
|
conf->gen.name, newval);
|
||||||
else if (newstr != newval)
|
else if (newstr != newval)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -4004,8 +4010,9 @@ AtEOXact_GUC(bool isCommit, int nestLevel)
|
|||||||
if (conf->assign_hook)
|
if (conf->assign_hook)
|
||||||
if (!(*conf->assign_hook) (newval,
|
if (!(*conf->assign_hook) (newval,
|
||||||
true, PGC_S_OVERRIDE))
|
true, PGC_S_OVERRIDE))
|
||||||
elog(LOG, "failed to commit %s",
|
elog(LOG, "failed to commit %s as %s",
|
||||||
conf->gen.name);
|
conf->gen.name,
|
||||||
|
config_enum_lookup_by_value(conf, newval));
|
||||||
*conf->variable = newval;
|
*conf->variable = newval;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user