diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 626c8b8b5fd8e1fc52b9d9a5f82f9f5081e8705b..da98f37249185783eb126d1b29531c2a978cee22 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