* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.1 1998/08/24 19:14:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.2 1999/01/28 11:48:30 wieck Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
char *name;
plpgsql_ns_setlocal(false);
- name = plpgsql_tolower(pstrdup(yytext));
+ name = plpgsql_tolower(yytext);
if (name[0] != '$') {
elog(ERROR, "can only alias positional parameters");
}
decl_renname : T_WORD
{
- $$ = plpgsql_tolower(pstrdup(yytext));
+ $$ = plpgsql_tolower(yytext);
}
;
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.4 1998/11/27 20:07:22 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.5 1999/01/28 11:48:31 wieck Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
* We do our lookups case insensitive
* ----------
*/
- cp = plpgsql_tolower(pstrdup(word));
+ cp = plpgsql_tolower(word);
/* ----------
* Special handling when compiling triggers
* Convert to lower case and separate the words
* ----------
*/
- word1 = plpgsql_tolower(pstrdup(string));
+ word1 = plpgsql_tolower(string);
word2 = strchr(word1, '.');
*word2++ = '\0';
* Convert to lower case and separate the words
* ----------
*/
- word1 = plpgsql_tolower(pstrdup(string));
+ word1 = plpgsql_tolower(string);
word2 = strchr(word1, '.');
*word2++ = '\0';
word3 = strchr(word2, '.');
* We do our lookups case insensitive
* ----------
*/
- cp = plpgsql_tolower(pstrdup(word));
+ cp = plpgsql_tolower(word);
*(strchr(cp, '%')) = '\0';
/* ----------
* Convert to lower case and separate the words
* ----------
*/
- word1 = plpgsql_tolower(pstrdup(string));
+ word1 = plpgsql_tolower(string);
word2 = strchr(word1, '.');
*word2++ = '\0';
*(strchr(word2, '%')) = '\0';
* Get the word in lower case and fetch the pg_class tuple.
* ----------
*/
- word1 = plpgsql_tolower(pstrdup(string));
+ word1 = plpgsql_tolower(string);
cp = strchr(word1, '%');
*cp = '\0';
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.2 1998/09/01 04:40:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.3 1999/01/28 11:48:31 wieck Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
if (name == NULL)
name = "";
+ name = plpgsql_tolower(name);
if (ns->items_used == ns->items_alloc)
{
/* ----------
- * plpgsql_tolower Translate a string in place to
- * lower case
+ * plpgsql_tolower Translate a string to lower case
+ * but honor "" escaping.
* ----------
*/
char *
plpgsql_tolower(char *s)
{
- char *cp;
+ char *ret;
+ char *cp;
- for (cp = s; *cp; cp++)
+ ret = palloc(strlen(s) + 1);
+ cp = ret;
+
+ while (*s)
{
- if (isupper(*cp))
- *cp = tolower(*cp);
+ if (*s == '"')
+ {
+ s++;
+ while (*s)
+ {
+ if (*s == '"')
+ break;
+ *cp++ = *s++;
+ }
+ if (*s != '"')
+ {
+ plpgsql_comperrinfo();
+ elog(ERROR, "unterminated \"");
+ }
+ s++;
+ }
+ else
+ {
+ if (isupper(*s))
+ *cp++ = tolower(*s++);
+ else
+ *cp++ = *s++;
+ }
}
+ *cp = '\0';
- return s;
+ return ret;
}
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.l,v 1.1 1998/08/24 19:14:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.l,v 1.2 1999/01/28 11:48:31 wieck Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
#define YY_INPUT(buf,res,max) plpgsql_input(buf, &res, max)
%}
-WS [[:alpha:]_]
-WC [[:alnum:]_]
+WS [[:alpha:]_"]
+WC [[:alnum:]_"]
%x IN_STRING IN_COMMENT