diff options
author | Bruce Momjian <bruce@momjian.us> | 1997-09-07 05:04:48 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1997-09-07 05:04:48 +0000 |
commit | 1ccd423235a48739d6f7a4d7889705b5f9ecc69b (patch) | |
tree | 8001c4e839dfad8f29ceda7f8c5f5dbb8759b564 /src/backend/tcop/variable.c | |
parent | 8fecd4febf8357f3cc20383ed29ced484877d5ac (diff) | |
download | postgresql-1ccd423235a48739d6f7a4d7889705b5f9ecc69b.tar.gz postgresql-1ccd423235a48739d6f7a4d7889705b5f9ecc69b.zip |
Massive commit to run PGINDENT on all *.c and *.h files.
Diffstat (limited to 'src/backend/tcop/variable.c')
-rw-r--r-- | src/backend/tcop/variable.c | 598 |
1 files changed, 324 insertions, 274 deletions
diff --git a/src/backend/tcop/variable.c b/src/backend/tcop/variable.c index c2a2a754e95..d394881ab3a 100644 --- a/src/backend/tcop/variable.c +++ b/src/backend/tcop/variable.c @@ -2,7 +2,7 @@ * Routines for handling of 'SET var TO', 'SHOW var' and 'RESET var' * statements. * - * $Id: variable.c,v 1.13 1997/08/12 20:15:50 momjian Exp $ + * $Id: variable.c,v 1.14 1997/09/07 04:49:37 momjian Exp $ * */ @@ -15,421 +15,471 @@ #include "utils/builtins.h" #include "optimizer/internal.h" -extern Cost _cpu_page_wight_; -extern Cost _cpu_index_page_wight_; -extern bool _use_geqo_; -extern int32 _use_geqo_rels_; -extern bool _use_right_sided_plans_; +extern Cost _cpu_page_wight_; +extern Cost _cpu_index_page_wight_; +extern bool _use_geqo_; +extern int32 _use_geqo_rels_; +extern bool _use_right_sided_plans_; /*-----------------------------------------------------------------------*/ #if USE_EURODATES -#define DATE_EURO TRUE +#define DATE_EURO TRUE #else #define DATE_EURO FALSE #endif /*-----------------------------------------------------------------------*/ struct PGVariables PGVariables = - { - { DATE_EURO, Date_Postgres } - }; +{ + {DATE_EURO, Date_Postgres} +}; /*-----------------------------------------------------------------------*/ -static const char *get_token(char **tok, char **val, const char *str) +static const char * +get_token(char **tok, char **val, const char *str) { - const char *start; - int len = 0; - - *tok = NULL; - if (val != NULL) *val = NULL; - - if ( !(*str) ) - return NULL; - - /* skip white spaces */ - while (isspace(*str)) str++; - if ( *str == ',' || *str == '=' ) - elog(WARN, "Syntax error near (%s): empty setting", str); - - /* end of string? then return NULL */ - if ( !(*str) ) - return NULL; - - /* OK, at beginning of non-NULL string... */ - start = str; - - /* - * count chars in token until we hit white space or comma - * or '=' or end of string - */ - while ( *str && (! isspace(*str)) - && *str != ',' && *str != '=' ) - { - str++; - len++; - } - - *tok = (char*) PALLOC(len + 1); - strNcpy (*tok, start, len); - - /* skip white spaces */ - while ( isspace(*str)) str++; - - /* end of string? */ - if ( !(*str) ) { - return(str); - - /* delimiter? */ - } else if ( *str == ',' ) { - return (++str); - - } else if ((val == NULL) || ( *str != '=' )) { + const char *start; + int len = 0; + + *tok = NULL; + if (val != NULL) + *val = NULL; + + if (!(*str)) + return NULL; + + /* skip white spaces */ + while (isspace(*str)) + str++; + if (*str == ',' || *str == '=') + elog(WARN, "Syntax error near (%s): empty setting", str); + + /* end of string? then return NULL */ + if (!(*str)) + return NULL; + + /* OK, at beginning of non-NULL string... */ + start = str; + + /* + * count chars in token until we hit white space or comma or '=' or + * end of string + */ + while (*str && (!isspace(*str)) + && *str != ',' && *str != '=') + { + str++; + len++; + } + + *tok = (char *) PALLOC(len + 1); + strNcpy(*tok, start, len); + + /* skip white spaces */ + while (isspace(*str)) + str++; + + /* end of string? */ + if (!(*str)) + { + return (str); + + /* delimiter? */ + } + else if (*str == ',') + { + return (++str); + + } + else if ((val == NULL) || (*str != '=')) + { + elog(WARN, "Syntax error near (%s)", str); + }; + + str++; /* '=': get value */ + len = 0; + + /* skip white spaces */ + while (isspace(*str)) + str++; + + if (*str == ',' || !(*str)) + elog(WARN, "Syntax error near (=%s)", str); + + start = str; + + /* + * count chars in token's value until we hit white space or comma or + * end of string + */ + while (*str && (!isspace(*str)) && *str != ',') + { + str++; + len++; + } + + *val = (char *) PALLOC(len + 1); + strNcpy(*val, start, len); + + /* skip white spaces */ + while (isspace(*str)) + str++; + + if (!(*str)) + return (NULL); + if (*str == ',') + return (++str); + elog(WARN, "Syntax error near (%s)", str); - }; - - str++; /* '=': get value */ - len = 0; - - /* skip white spaces */ - while ( isspace(*str)) str++; - - if ( *str == ',' || !(*str) ) - elog(WARN, "Syntax error near (=%s)", str); - - start = str; - - /* - * count chars in token's value until we hit white space or comma - * or end of string - */ - while ( *str && (! isspace(*str)) && *str != ',' ) - { - str++; - len++; - } - - *val = (char*) PALLOC(len + 1); - strNcpy (*val, start, len); - - /* skip white spaces */ - while ( isspace(*str)) str++; - - if ( !(*str) ) - return (NULL); - if ( *str == ',' ) - return (++str); - - elog(WARN, "Syntax error near (%s)", str); - - return str; + + return str; } /*-----------------------------------------------------------------------*/ -static bool parse_null(const char *value) - { +static bool +parse_null(const char *value) +{ return TRUE; - } +} -static bool show_null(const char *value) - { +static bool +show_null(const char *value) +{ return TRUE; - } +} -static bool reset_null(const char *value) - { +static bool +reset_null(const char *value) +{ return TRUE; - } +} -static bool parse_geqo (const char *value) +static bool +parse_geqo(const char *value) { - const char *rest; - char *tok, *val; - - rest = get_token (&tok, &val, value); - if ( tok == NULL ) - elog(WARN, "Value undefined"); - - if (( rest ) && ( *rest != '\0' )) - elog(WARN, "Unable to parse '%s'", value); - - if ( strcasecmp (tok, "on") == 0 ) - { - int32 geqo_rels = GEQO_RELS; - - if ( val != NULL ) - { - geqo_rels = pg_atoi (val, sizeof(int32), '\0'); - if ( geqo_rels <= 1 ) - elog(WARN, "Bad value for # of relations (%s)", val); - PFREE(val); - } - _use_geqo_ = true; - _use_geqo_rels_ = geqo_rels; - } - else if ( strcasecmp (tok, "off") == 0 ) - { - if (( val != NULL ) && ( *val != '\0' )) - elog(WARN, "%s does not allow a parameter",tok); - _use_geqo_ = false; - } - else - elog(WARN, "Bad value for GEQO (%s)", value); - - PFREE(tok); - return TRUE; + const char *rest; + char *tok, + *val; + + rest = get_token(&tok, &val, value); + if (tok == NULL) + elog(WARN, "Value undefined"); + + if ((rest) && (*rest != '\0')) + elog(WARN, "Unable to parse '%s'", value); + + if (strcasecmp(tok, "on") == 0) + { + int32 geqo_rels = GEQO_RELS; + + if (val != NULL) + { + geqo_rels = pg_atoi(val, sizeof(int32), '\0'); + if (geqo_rels <= 1) + elog(WARN, "Bad value for # of relations (%s)", val); + PFREE(val); + } + _use_geqo_ = true; + _use_geqo_rels_ = geqo_rels; + } + else if (strcasecmp(tok, "off") == 0) + { + if ((val != NULL) && (*val != '\0')) + elog(WARN, "%s does not allow a parameter", tok); + _use_geqo_ = false; + } + else + elog(WARN, "Bad value for GEQO (%s)", value); + + PFREE(tok); + return TRUE; } -static bool show_geqo () +static bool +show_geqo() { - if ( _use_geqo_ ) - elog (NOTICE, "GEQO is ON beginning with %d relations", _use_geqo_rels_); - else - elog (NOTICE, "GEQO is OFF"); - return TRUE; + if (_use_geqo_) + elog(NOTICE, "GEQO is ON beginning with %d relations", _use_geqo_rels_); + else + elog(NOTICE, "GEQO is OFF"); + return TRUE; } -static bool reset_geqo () +static bool +reset_geqo() { #ifdef GEQO - _use_geqo_ = true; + _use_geqo_ = true; #else - _use_geqo_ = false; + _use_geqo_ = false; #endif - _use_geqo_rels_ = GEQO_RELS; - return TRUE; + _use_geqo_rels_ = GEQO_RELS; + return TRUE; } -static bool parse_r_plans (const char *value) +static bool +parse_r_plans(const char *value) { - if ( strcasecmp (value, "on") == 0 ) - _use_right_sided_plans_ = true; - else if ( strcasecmp (value, "off") == 0 ) - _use_right_sided_plans_ = false; - else - elog(WARN, "Bad value for Right-sided Plans (%s)", value); - - return TRUE; + if (strcasecmp(value, "on") == 0) + _use_right_sided_plans_ = true; + else if (strcasecmp(value, "off") == 0) + _use_right_sided_plans_ = false; + else + elog(WARN, "Bad value for Right-sided Plans (%s)", value); + + return TRUE; } -static bool show_r_plans () +static bool +show_r_plans() { - if ( _use_right_sided_plans_ ) - elog (NOTICE, "Right-sided Plans are ON"); - else - elog (NOTICE, "Right-sided Plans are OFF"); - return TRUE; + if (_use_right_sided_plans_) + elog(NOTICE, "Right-sided Plans are ON"); + else + elog(NOTICE, "Right-sided Plans are OFF"); + return TRUE; } -static bool reset_r_plans () +static bool +reset_r_plans() { #ifdef USE_RIGHT_SIDED_PLANS - _use_right_sided_plans_ = true; + _use_right_sided_plans_ = true; #else - _use_right_sided_plans_ = false; + _use_right_sided_plans_ = false; #endif - return TRUE; + return TRUE; } -static bool parse_cost_heap (const char *value) +static bool +parse_cost_heap(const char *value) { - float32 res = float4in ((char*)value); - - _cpu_page_wight_ = *res; - - return TRUE; + float32 res = float4in((char *) value); + + _cpu_page_wight_ = *res; + + return TRUE; } -static bool show_cost_heap () +static bool +show_cost_heap() { - elog (NOTICE, "COST_HEAP is %f", _cpu_page_wight_); - return TRUE; + elog(NOTICE, "COST_HEAP is %f", _cpu_page_wight_); + return TRUE; } -static bool reset_cost_heap () +static bool +reset_cost_heap() { - _cpu_page_wight_ = _CPU_PAGE_WEIGHT_; - return TRUE; + _cpu_page_wight_ = _CPU_PAGE_WEIGHT_; + return TRUE; } -static bool parse_cost_index (const char *value) +static bool +parse_cost_index(const char *value) { - float32 res = float4in ((char*)value); - - _cpu_index_page_wight_ = *res; - - return TRUE; + float32 res = float4in((char *) value); + + _cpu_index_page_wight_ = *res; + + return TRUE; } -static bool show_cost_index () +static bool +show_cost_index() { - elog (NOTICE, "COST_INDEX is %f", _cpu_index_page_wight_); - return TRUE; + elog(NOTICE, "COST_INDEX is %f", _cpu_index_page_wight_); + return TRUE; } -static bool reset_cost_index () +static bool +reset_cost_index() { - _cpu_index_page_wight_ = _CPU_INDEX_PAGE_WEIGHT_; - return TRUE; + _cpu_index_page_wight_ = _CPU_INDEX_PAGE_WEIGHT_; + return TRUE; } -static bool parse_date(const char *value) +static bool +parse_date(const char *value) { - char *tok; - int dcnt = 0, ecnt = 0; + char *tok; + int dcnt = 0, + ecnt = 0; - while((value = get_token(&tok, NULL, value)) != 0) + while ((value = get_token(&tok, NULL, value)) != 0) { /* Ugh. Somebody ought to write a table driven version -- mjl */ - if(!strcasecmp(tok, "iso")) - { + if (!strcasecmp(tok, "iso")) + { DateStyle = USE_ISO_DATES; dcnt++; - } - else if(!strcasecmp(tok, "sql")) - { + } + else if (!strcasecmp(tok, "sql")) + { DateStyle = USE_SQL_DATES; dcnt++; - } - else if(!strcasecmp(tok, "postgres")) - { + } + else if (!strcasecmp(tok, "postgres")) + { DateStyle = USE_POSTGRES_DATES; dcnt++; - } - else if(!strncasecmp(tok, "euro", 4)) - { + } + else if (!strncasecmp(tok, "euro", 4)) + { EuroDates = TRUE; ecnt++; - } - else if((!strcasecmp(tok, "us")) - || (!strncasecmp(tok, "noneuro", 7))) - { + } + else if ((!strcasecmp(tok, "us")) + || (!strncasecmp(tok, "noneuro", 7))) + { EuroDates = FALSE; ecnt++; - } - else if(!strcasecmp(tok, "default")) - { + } + else if (!strcasecmp(tok, "default")) + { DateStyle = USE_POSTGRES_DATES; EuroDates = FALSE; ecnt++; - } + } else - { + { elog(WARN, "Bad value for date style (%s)", tok); - } + } PFREE(tok); } - if(dcnt > 1 || ecnt > 1) + if (dcnt > 1 || ecnt > 1) elog(NOTICE, "Conflicting settings for date"); return TRUE; } -static bool show_date() - { - char buf[64]; +static bool +show_date() +{ + char buf[64]; - strcpy( buf, "DateStyle is "); - switch (DateStyle) { + strcpy(buf, "DateStyle is "); + switch (DateStyle) + { case USE_ISO_DATES: - strcat( buf, "ISO"); + strcat(buf, "ISO"); break; case USE_SQL_DATES: - strcat( buf, "SQL"); + strcat(buf, "SQL"); break; default: - strcat( buf, "Postgres"); + strcat(buf, "Postgres"); break; }; - strcat( buf, " with "); - strcat( buf, ((EuroDates)? "European": "US (NonEuropean)")); - strcat( buf, " conventions"); + strcat(buf, " with "); + strcat(buf, ((EuroDates) ? "European" : "US (NonEuropean)")); + strcat(buf, " conventions"); elog(NOTICE, buf, NULL); return TRUE; - } +} -static bool reset_date() - { +static bool +reset_date() +{ DateStyle = USE_POSTGRES_DATES; EuroDates = FALSE; return TRUE; - } +} /*-----------------------------------------------------------------------*/ struct VariableParsers +{ + const char *name; + bool(*parser) (const char *); + bool(*show) (); + bool(*reset) (); +} VariableParsers[] = + +{ { - const char *name; - bool (*parser)(const char *); - bool (*show)(); - bool (*reset)(); - } VariableParsers[] = + "datestyle", parse_date, show_date, reset_date + }, { - { "datestyle", parse_date, show_date, reset_date }, - { "timezone", parse_null, show_null, reset_null }, - { "cost_heap", parse_cost_heap, - show_cost_heap, reset_cost_heap }, - { "cost_index", parse_cost_index, - show_cost_index, reset_cost_index }, - { "geqo", parse_geqo, show_geqo, reset_geqo }, - { "r_plans", parse_r_plans, show_r_plans, reset_r_plans }, - { NULL, NULL, NULL } - }; + "timezone", parse_null, show_null, reset_null + }, + { + "cost_heap", parse_cost_heap, + show_cost_heap, reset_cost_heap + }, + { + "cost_index", parse_cost_index, + show_cost_index, reset_cost_index + }, + { + "geqo", parse_geqo, show_geqo, reset_geqo + }, + { + "r_plans", parse_r_plans, show_r_plans, reset_r_plans + }, + { + NULL, NULL, NULL + } +}; /*-----------------------------------------------------------------------*/ -bool SetPGVariable(const char *name, const char *value) - { +bool +SetPGVariable(const char *name, const char *value) +{ struct VariableParsers *vp; - for(vp = VariableParsers; vp->name; vp++) - { - if(!strcasecmp(vp->name, name)) - return (vp->parser)(value); - } + for (vp = VariableParsers; vp->name; vp++) + { + if (!strcasecmp(vp->name, name)) + return (vp->parser) (value); + } elog(NOTICE, "Unrecognized variable %s", name); return TRUE; - } +} /*-----------------------------------------------------------------------*/ -bool GetPGVariable(const char *name) - { +bool +GetPGVariable(const char *name) +{ struct VariableParsers *vp; - for(vp = VariableParsers; vp->name; vp++) - { - if(!strcasecmp(vp->name, name)) - return (vp->show)(); - } + for (vp = VariableParsers; vp->name; vp++) + { + if (!strcasecmp(vp->name, name)) + return (vp->show) (); + } elog(NOTICE, "Unrecognized variable %s", name); return TRUE; - } +} /*-----------------------------------------------------------------------*/ -bool ResetPGVariable(const char *name) - { +bool +ResetPGVariable(const char *name) +{ struct VariableParsers *vp; - for(vp = VariableParsers; vp->name; vp++) - { - if(!strcasecmp(vp->name, name)) - return (vp->reset)(); - } + for (vp = VariableParsers; vp->name; vp++) + { + if (!strcasecmp(vp->name, name)) + return (vp->reset) (); + } elog(NOTICE, "Unrecognized variable %s", name); return TRUE; - } +} |