OSDN Git Service

Even after the great date/time consolidation, TypeCategory() was still
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 20 Feb 2000 06:28:42 +0000 (06:28 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 20 Feb 2000 06:28:42 +0000 (06:28 +0000)
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
src/include/catalog/pg_type.h

index 7fa7b01..dbb6cbc 100644 (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;
index fa07446..83dd6e6 100644 (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