aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1997-10-09 05:00:54 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1997-10-09 05:00:54 +0000
commitf54cc390e1c4e664be437e67e510af3c1983990d (patch)
tree826cdc7d564058f6742605aefd63bffe06aebe00 /src
parent8bd813d6be4da9c16a6db1022c2957e47008df48 (diff)
downloadpostgresql-f54cc390e1c4e664be437e67e510af3c1983990d.tar.gz
postgresql-f54cc390e1c4e664be437e67e510af3c1983990d.zip
Allow TIME in column and table names (SQL/92 non-reserved word).
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 626c8b8b5fd..da98f372491 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.53 1997/09/29 05:58:12 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.54 1997/10/09 05:00:54 thomas Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -2308,9 +2308,8 @@ nest_array_bounds: '[' ']' nest_array_bounds
/*
* typname handles types without trailing parens for size specification.
* Typename uses either typname or explicit txname(size).
- * So, must handle float in both places. - thomas 1997-09-20
+ * So, must handle FLOAT in both places. - thomas 1997-09-20
*/
-
typname: txname
{
char *tname;
@@ -2352,7 +2351,16 @@ typname: txname
}
;
+/* Type names
+ * Allow the following parsing categories:
+ * - strings which are not keywords (Id)
+ * - some explicit SQL/92 data types (e.g. DOUBLE PRECISION)
+ * - TIME as an SQL/92 non-reserved word, but parser keyword
+ * - other date/time strings (e.g. YEAR)
+ * - thomas 1997-10-08
+ */
txname: Id { $$ = $1; }
+ | DateTime { $$ = $1; }
| TIME { $$ = xlateSqlType("time"); }
| INTERVAL interval_opts { $$ = xlateSqlType("interval"); }
| CHARACTER char_type { $$ = $2; }
@@ -3131,6 +3139,7 @@ class: Id { $$ = $1; };
index_name: Id { $$ = $1; };
name: Id { $$ = $1; }
+ | DateTime { $$ = $1; }
| TIME { $$ = xlateSqlType("time"); }
;
@@ -3179,8 +3188,14 @@ Sconst: SCONST { $$ = $1; };
Id: IDENT { $$ = $1; };
+/* Column identifier (also used for table identifier)
+ * Allow date/time names ("year", etc.) (SQL/92 extension).
+ * Allow TIME (SQL/92 non-reserved word).
+ * - thomas 1997-10-08
+ */
ColId: Id { $$ = $1; }
| DateTime { $$ = $1; }
+ | TIME { $$ = "time"; }
;
SpecialRuleRelation: CURRENT