aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y9
-rw-r--r--src/backend/parser/parse_coerce.c25
2 files changed, 21 insertions, 13 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 0da02fd8967..4babad9524a 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.142 2000/02/15 03:26:38 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.143 2000/02/16 17:24:36 thomas Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -5180,6 +5180,7 @@ ColId: IDENT { $$ = $1; }
| INITIALLY { $$ = "initially"; }
| INSENSITIVE { $$ = "insensitive"; }
| INSTEAD { $$ = "instead"; }
+ | INTERVAL { $$ = "interval"; }
| ISNULL { $$ = "isnull"; }
| ISOLATION { $$ = "isolation"; }
| KEY { $$ = "key"; }
@@ -5456,8 +5457,10 @@ xlateSqlType(char *name)
return "numeric";
else if (!strcasecmp(name, "char"))
return "bpchar";
- else if (!strcasecmp(name, "interval"))
- return "timespan";
+ else if (!strcasecmp(name, "datetime"))
+ return "timestamp";
+ else if (!strcasecmp(name, "timespan"))
+ return "interval";
else if (!strcasecmp(name, "boolean"))
return "bool";
else
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 67a34132388..7fa7b016881 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.29 2000/01/26 05:56:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.30 2000/02/16 17:24:37 thomas Exp $
*
*-------------------------------------------------------------------------
*/
@@ -293,18 +293,18 @@ TypeCategory(Oid inType)
case (INT8OID):
case (FLOAT4OID):
case (FLOAT8OID):
+ case (NUMERICOID):
case (CASHOID):
result = NUMERIC_TYPE;
break;
case (ABSTIMEOID):
case (TIMESTAMPOID):
- case (DATETIMEOID):
result = DATETIME_TYPE;
break;
case (RELTIMEOID):
- case (TIMESPANOID):
+ case (INTERVALOID):
result = TIMESPAN_TYPE;
break;
@@ -362,16 +362,18 @@ PreferredType(CATEGORY category, Oid type)
case (NUMERIC_TYPE):
if (type == OIDOID)
result = OIDOID;
+ else if (type == NUMERICOID)
+ result = NUMERICOID;
else
result = FLOAT8OID;
break;
case (DATETIME_TYPE):
- result = DATETIMEOID;
+ result = TIMESTAMPOID;
break;
case (TIMESPAN_TYPE):
- result = TIMESPANOID;
+ result = INTERVALOID;
break;
case (NETWORK_TYPE):
@@ -419,22 +421,25 @@ PromoteTypeToNext(Oid inType)
result = FLOAT8OID;
break;
+ case (NUMERICOID):
+ result = NUMERICOID;
+ break;
+
case (DATEOID):
case (ABSTIMEOID):
- case (TIMESTAMPOID):
- result = DATETIMEOID;
+ result = TIMESTAMPOID;
break;
case (TIMEOID):
case (RELTIMEOID):
- result = TIMESPANOID;
+ result = INTERVALOID;
break;
case (BOOLOID):
case (TEXTOID):
case (FLOAT8OID):
- case (DATETIMEOID):
- case (TIMESPANOID):
+ case (TIMESTAMPOID):
+ case (INTERVALOID):
default:
result = inType;
break;