diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index aad13930f70..099e4faed1d 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.299.2.3 2006/05/21 20:11:02 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.299.2.4 2008/05/26 18:54:50 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -3716,6 +3716,10 @@ set_config_option(const char *name, const char *value, source = conf->gen.reset_source; } + /* Save old value to support transaction abort */ + if (changeVal && !makeDefault) + push_old_value(&conf->gen); + if (conf->assign_hook) if (!(*conf->assign_hook) (newval, changeVal, source)) { @@ -3728,9 +3732,6 @@ set_config_option(const char *name, const char *value, if (changeVal || makeDefault) { - /* Save old value to support transaction abort */ - if (!makeDefault) - push_old_value(&conf->gen); if (changeVal) { *conf->variable = newval; @@ -3800,6 +3801,10 @@ set_config_option(const char *name, const char *value, source = conf->gen.reset_source; } + /* Save old value to support transaction abort */ + if (changeVal && !makeDefault) + push_old_value(&conf->gen); + if (conf->assign_hook) if (!(*conf->assign_hook) (newval, changeVal, source)) { @@ -3812,9 +3817,6 @@ set_config_option(const char *name, const char *value, if (changeVal || makeDefault) { - /* Save old value to support transaction abort */ - if (!makeDefault) - push_old_value(&conf->gen); if (changeVal) { *conf->variable = newval; @@ -3884,6 +3886,10 @@ set_config_option(const char *name, const char *value, source = conf->gen.reset_source; } + /* Save old value to support transaction abort */ + if (changeVal && !makeDefault) + push_old_value(&conf->gen); + if (conf->assign_hook) if (!(*conf->assign_hook) (newval, changeVal, source)) { @@ -3896,9 +3902,6 @@ set_config_option(const char *name, const char *value, if (changeVal || makeDefault) { - /* Save old value to support transaction abort */ - if (!makeDefault) - push_old_value(&conf->gen); if (changeVal) { *conf->variable = newval; @@ -3972,6 +3975,10 @@ set_config_option(const char *name, const char *value, break; } + /* Save old value to support transaction abort */ + if (changeVal && !makeDefault) + push_old_value(&conf->gen); + if (conf->assign_hook) { const char *hookresult; @@ -4011,9 +4018,6 @@ set_config_option(const char *name, const char *value, if (changeVal || makeDefault) { - /* Save old value to support transaction abort */ - if (!makeDefault) - push_old_value(&conf->gen); if (changeVal) { set_string_field(conf, conf->variable, newval);