Remove case-sensitive identifiers. Thanks for Dan McGuirk for a reversal patch.
This commit is contained in:
parent
a3a956bfe5
commit
34fd62c512
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user