From 34fd62c51201cb829e78ae4e84cfd0aa42e45758 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sun, 2 Mar 1997 01:03:44 +0000 Subject: [PATCH] Remove case-sensitive identifiers. Thanks for Dan McGuirk for a reversal patch. --- src/backend/parser/analyze.c | 52 +----------------------------- src/backend/parser/catalog_utils.c | 50 +--------------------------- src/backend/parser/keywords.c | 7 ++-- src/backend/parser/scan.l | 8 ++++- src/test/regress/expected.input | 44 ++++++++++++------------- 5 files changed, 35 insertions(+), 126 deletions(-) diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 21667455a8..760ca8066a 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.21 1997/02/07 16:22:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.22 1997/03/02 01:02:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -80,9 +80,6 @@ static void AddAggToParseState(ParseState *pstate, Aggreg *aggreg); static void finalizeAggregates(ParseState *pstate, Query *qry); static void parseCheckAggregates(ParseState *pstate, Query *qry); -static bool is_lowercase(char *string); -static void make_lowercase(char *string); - /***************************************************************************** * *****************************************************************************/ @@ -1904,32 +1901,6 @@ ParseComplexProjection(ParseState *pstate, return NULL; } -static -bool is_lowercase(char *string) -{ - int i; - - for(i = 0; i < strlen(string); i++) { - if(string[i] >= 'A' && string[i] <= 'Z') { - return false; - } - } - - return true; -} - -static -void make_lowercase(char *string) -{ - int i; - - for(i = 0; i < strlen(string); i++) { - if(string[i] >= 'A' && string[i] <= 'Z') { - string[i] = (string[i] - 'A') + 'a'; - } - } -} - static Node * ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno) { @@ -2048,27 +2019,6 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno) AddAggToParseState(pstate, aggreg); return (Node*)aggreg; - } else { - /* try one more time with lowercase --djm 8/17/96 */ - if(!is_lowercase(funcname)) { - char *lowercase_funcname = pstrdup(funcname); - - make_lowercase(lowercase_funcname); - if (strcmp(lowercase_funcname, "count") == 0) - basetype = 0; - else - basetype = exprType(lfirst(fargs)); - if (SearchSysCacheTuple(AGGNAME, - PointerGetDatum(lowercase_funcname), - ObjectIdGetDatum(basetype), - 0, 0)) { - Aggreg *aggreg = ParseAgg(lowercase_funcname, - basetype, lfirst(fargs)); - - AddAggToParseState(pstate, aggreg); - return (Node*)aggreg; - } - } } } } diff --git a/src/backend/parser/catalog_utils.c b/src/backend/parser/catalog_utils.c index 661cea098b..60a4323949 100644 --- a/src/backend/parser/catalog_utils.c +++ b/src/backend/parser/catalog_utils.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.16 1997/02/07 16:23:08 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.17 1997/03/02 01:03:00 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -110,9 +110,6 @@ static Oid **argtype_inherit(int nargs, Oid *oid_array); static Oid **genxprod(InhPaths *arginh, int nargs); static int findsupers(Oid relid, Oid **supervec); -static bool is_lowercase(char *string); -static void make_lowercase(char *string); - /* check to see if a type id is valid, * returns true if it is. By using this call before calling * get_id_type or get_id_typname, more meaningful error messages @@ -1017,32 +1014,6 @@ func_select_candidate(int nargs, return (NULL); } -static -bool is_lowercase(char *string) -{ - int i; - - for(i = 0; i < strlen(string); i++) { - if(string[i] >= 'A' && string[i] <= 'Z') { - return false; - } - } - - return true; -} - -static -void make_lowercase(char *string) -{ - int i; - - for(i = 0; i < strlen(string); i++) { - if(string[i] >= 'A' && string[i] <= 'Z') { - string[i] = (string[i] - 'A') + 'a'; - } - } -} - bool func_get_detail(char *funcname, int nargs, @@ -1138,24 +1109,6 @@ func_get_detail(char *funcname, if (!HeapTupleIsValid(ftup)) { Type tp; - /* - * everything else has failed--try converting the function - * name to lowercase, and do everything one more time - * (if it's not already lowercase). so ODBC applications - * that expect uppercase names to work can work. --djm 8/17/96 - */ - if(!is_lowercase(funcname)) { - char *lowercase_funcname = strdup(funcname); - bool result; - - make_lowercase(lowercase_funcname); - result = func_get_detail(lowercase_funcname, nargs, oid_array, - funcid, rettype, retset, - true_typeids); - - free(lowercase_funcname); - return result; - } else { if (nargs == 1) { tp = get_id_type(oid_array[0]); if (typetypetype(tp) == 'c') @@ -1163,7 +1116,6 @@ func_get_detail(char *funcname, funcname); } func_error("func_get_detail", funcname, nargs, oid_array); - } } else { pform = (Form_pg_proc) GETSTRUCT(ftup); *funcid = ftup->t_oid; diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index 80705dee9c..f5382503d5 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.6 1997/01/13 03:44:25 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.7 1997/03/02 01:03:07 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -154,8 +154,7 @@ ScanKeywordLookup(char *text) while (low <= high) { middle = low + (high - low) / 2; - /* keywords case-insensitive (for SQL) -- ay 8/94 */ - difference = strcasecmp(middle->name, text); + difference = strcmp(middle->name, text); if (difference == 0) return (middle); else if (difference < 0) @@ -167,6 +166,7 @@ ScanKeywordLookup(char *text) return (NULL); } +#ifdef NOT_USED char* AtomValueGetString(int atomval) { @@ -182,3 +182,4 @@ AtomValueGetString(int atomval) elog(WARN,"AtomGetString called with bogus atom # : %d", atomval ); return(NULL); } +#endif diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index f741b8bc7d..255b282e3b 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.11 1997/02/28 13:25:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.12 1997/03/02 01:03:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -164,8 +164,13 @@ other . return (SCONST); } {identifier} { + int i; ScanKeyword *keyword; + for(i = 0; i < strlen(yytext); i++) + if (isupper(yytext[i])) + yytext[i] = tolower(yytext[i]); + keyword = ScanKeywordLookup((char*)yytext); if (keyword != NULL) { return (keyword->value); @@ -209,6 +214,7 @@ init_io() } + #if !defined(FLEX_SCANNER) /* get lex input from a string instead of from stdin */ int diff --git a/src/test/regress/expected.input b/src/test/regress/expected.input index 35e12a5d98..50e34c9288 100644 --- a/src/test/regress/expected.input +++ b/src/test/regress/expected.input @@ -6699,38 +6699,26 @@ QUERY: SELECT user_relns() AS user_relns ORDER BY user_relns; user_relns ------------- -ABSTIME_TBL -BOOLTBL1 -BOOLTBL2 -BOX_TBL -Bprime -CHAR16_TBL -CHAR2_TBL -CHAR4_TBL -CHAR8_TBL -CHAR_TBL -FLOAT4_TBL -FLOAT8_TBL -INT2_TBL -INT4_TBL -OIDINT2_TBL -OIDINT4_TBL -OIDNAME_TBL -OID_TBL -POINT_TBL -POLYGON_TBL -RELTIME_TBL -TINTERVAL_TBL a,775132 a_star +abstime_tbl aggtest arrtest b_star +booltbl1 +booltbl2 +box_tbl +bprime bt_c16_heap bt_f8_heap bt_i4_heap bt_txt_heap c_star +char16_tbl +char2_tbl +char4_tbl +char8_tbl +char_tbl city d_star dept @@ -6739,6 +6727,8 @@ emp equipment_r f_star fast_emp4000 +float4_tbl +float8_tbl hash_c16_heap hash_f8_heap hash_i4_heap @@ -6746,12 +6736,21 @@ hash_txt_heap hobbies_r iexit ihighway +int2_tbl +int4_tbl iportaltest +oid_tbl +oidint2_tbl +oidint4_tbl +oidname_tbl onek onek2 person +point_tbl +polygon_tbl ramp real_city +reltime_tbl road shighway slow_emp4000 @@ -6760,6 +6759,7 @@ stud_emp student tenk1 tenk2 +tinterval_tbl toyemp xacttest (63 rows) -- 2.40.0