aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/keywords.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/keywords.c')
-rw-r--r--src/backend/parser/keywords.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c
index fad08c849f1..12b05c6bcd1 100644
--- a/src/backend/parser/keywords.c
+++ b/src/backend/parser/keywords.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.99 2001/10/10 00:02:42 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.100 2002/02/18 23:11:18 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -269,6 +269,7 @@ static ScanKeyword ScanKeywords[] = {
{"unlisten", UNLISTEN},
{"until", UNTIL},
{"update", UPDATE},
+ {"usage", USAGE},
{"user", USER},
{"using", USING},
{"vacuum", VACUUM},
@@ -354,3 +355,36 @@ ScanKeywordLookup(char *text)
return NULL;
}
+
+
+/*
+ * This does the reverse mapping from token number to string.
+ */
+const char *
+TokenString(int token)
+{
+ int i = 0;
+ static char buf[NAMEDATALEN];
+
+ while (i < sizeof(ScanKeywords))
+ {
+ if (ScanKeywords[i].value == token)
+ {
+ int k;
+
+ /* uppercase */
+ for (k = 0; k < NAMEDATALEN; k++)
+ if (ScanKeywords[i].name[k] >= 'a'
+ && ScanKeywords[i].name[k] <= 'z')
+ buf[k] = ScanKeywords[i].name[k] + ('A' - 'a');
+ else
+ buf[k] = ScanKeywords[i].name[k];
+
+ return buf;
+ }
+
+ i++;
+ }
+
+ return NULL;
+}