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.
This commit is contained in:
Tom Lane 2000-02-20 06:28:42 +00:00
parent 4467194b44
commit f4d108a257
2 changed files with 6 additions and 2 deletions

View File

@ -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;

View File

@ -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