Commit 920c5062 authored by Tom Lane's avatar Tom Lane

SetPGVariable() crashed on SET DateStyle TO DEFAULT and related cases.

parent d3543706
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.40 2000/08/01 18:29:29 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.41 2000/09/22 15:34:31 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -592,28 +592,33 @@ reset_random_seed(void) ...@@ -592,28 +592,33 @@ reset_random_seed(void)
void void
SetPGVariable(const char *name, const char *value) SetPGVariable(const char *name, const char *value)
{ {
char *mvalue = value ? pstrdup(value) : ((char*) NULL);
/* /*
* Special cases ought to be removed and handled separately * Special cases ought to be removed and handled separately
* by TCOP * by TCOP
*/ */
if (strcasecmp(name, "datestyle")==0) if (strcasecmp(name, "datestyle")==0)
parse_date(pstrdup(value)); parse_date(mvalue);
else if (strcasecmp(name, "timezone")==0) else if (strcasecmp(name, "timezone")==0)
parse_timezone(pstrdup(value)); parse_timezone(mvalue);
else if (strcasecmp(name, "DefaultXactIsoLevel")==0) else if (strcasecmp(name, "DefaultXactIsoLevel")==0)
parse_DefaultXactIsoLevel(pstrdup(value)); parse_DefaultXactIsoLevel(mvalue);
else if (strcasecmp(name, "XactIsoLevel")==0) else if (strcasecmp(name, "XactIsoLevel")==0)
parse_XactIsoLevel(pstrdup(value)); parse_XactIsoLevel(mvalue);
#ifdef MULTIBYTE #ifdef MULTIBYTE
else if (strcasecmp(name, "client_encoding")==0) else if (strcasecmp(name, "client_encoding")==0)
parse_client_encoding(pstrdup(value)); parse_client_encoding(mvalue);
else if (strcasecmp(name, "server_encoding")==0) else if (strcasecmp(name, "server_encoding")==0)
parse_server_encoding(pstrdup(value)); parse_server_encoding(mvalue);
#endif #endif
else if (strcasecmp(name, "random_seed")==0) else if (strcasecmp(name, "random_seed")==0)
parse_random_seed(pstrdup(value)); parse_random_seed(mvalue);
else else
SetConfigOption(name, value, superuser() ? PGC_SUSET : PGC_USERSET); SetConfigOption(name, value, superuser() ? PGC_SUSET : PGC_USERSET);
if (mvalue)
pfree(mvalue);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment