From f4d108a25747754b5d265b12ef32c791ab547782 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 20 Feb 2000 06:28:42 +0000 Subject: [PATCH] Even after the great date/time consolidation, TypeCategory() was still a few bricks shy of a load concerning knowing all the date/time types. This is real bad because it interferes with func_select_candidate()'s willingness to disambiguate functions --- func_select_candidate() will punt unless all the available choices have the same type category. I think this whole mechanism needs redesigned, but in the meantime this is a needed patch. --- src/backend/parser/parse_coerce.c | 5 ++++- src/include/catalog/pg_type.h | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 7fa7b01688..dbb6cbc581 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.30 2000/02/16 17:24:37 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.31 2000/02/20 06:28:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -298,12 +298,15 @@ TypeCategory(Oid inType) result = NUMERIC_TYPE; break; + case (DATEOID): + case (TIMEOID): case (ABSTIMEOID): case (TIMESTAMPOID): result = DATETIME_TYPE; break; case (RELTIMEOID): + case (TINTERVALOID): case (INTERVALOID): result = TIMESPAN_TYPE; break; diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index fa074460a7..83dd6e6dce 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_type.h,v 1.81 2000/02/16 17:26:07 thomas Exp $ + * $Id: pg_type.h,v 1.82 2000/02/20 06:28:41 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -287,6 +287,7 @@ DESCR("relative, limited-range time interval (Unix delta time)"); #define RELTIMEOID 703 DATA(insert OID = 704 ( tinterval PGUID 12 47 f b t \054 0 0 tintervalin tintervalout tintervalin tintervalout i _null_ )); DESCR("(abstime,abstime), time interval"); +#define TINTERVALOID 704 DATA(insert OID = 705 ( unknown PGUID -1 -1 f b t \054 0 18 textin textout textin textout i _null_ )); DESCR(""); #define UNKNOWNOID 705 -- 2.11.0