aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1997-03-02 01:03:44 +0000
committerBruce Momjian <bruce@momjian.us>1997-03-02 01:03:44 +0000
commit34fd62c51201cb829e78ae4e84cfd0aa42e45758 (patch)
tree360a051097f6948a9249ac279fd6660a65aed86a
parenta3a956bfe549cb94d9909bf2d6a24a67cb23be6f (diff)
downloadpostgresql-34fd62c51201cb829e78ae4e84cfd0aa42e45758.tar.gz
postgresql-34fd62c51201cb829e78ae4e84cfd0aa42e45758.zip
Remove case-sensitive identifiers. Thanks for Dan McGuirk for a reversal patch.
-rw-r--r--src/backend/parser/analyze.c52
-rw-r--r--src/backend/parser/catalog_utils.c50
-rw-r--r--src/backend/parser/keywords.c7
-rw-r--r--src/backend/parser/scan.l8
-rw-r--r--src/test/regress/expected.input44
5 files changed, 35 insertions, 126 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 21667455a85..760ca8066aa 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 661cea098bb..60a4323949a 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 80705dee9ce..f5382503d57 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 f741b8bc7d5..255b282e3bf 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 35e12a5d98c..50e34c92883 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)