diff options
Diffstat (limited to 'src/backend/parser')
-rw-r--r-- | src/backend/parser/gram.y | 9 | ||||
-rw-r--r-- | src/backend/parser/parse_coerce.c | 25 |
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; |