diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index e96473721ec010e16e8ff8f8d507569f57bac603..acdf0439c47cf8238d237a83bb07d7a026dd7d9c 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.3 1998/07/08 14:04:10 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.4 1998/08/14 16:06:52 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -271,6 +271,7 @@ TypeCategory(Oid inType)
 			result = STRING_TYPE;
 			break;
 
+		case (OIDOID):
 		case (INT2OID):
 		case (INT4OID):
 		case (INT8OID):
@@ -338,7 +339,10 @@ PreferredType(CATEGORY category, Oid type)
 			break;
 
 		case (NUMERIC_TYPE):
-			result = FLOAT8OID;
+			if (type == OIDOID)
+				result = OIDOID;
+			else
+				result = FLOAT8OID;
 			break;
 
 		case (DATETIME_TYPE):
diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h
index 3b12054b6e04f9e25a52514e3a32b3b2ee25be1f..cf701a4c95f1ee55e19377bbd80ded2e199660ec 100644
--- a/src/include/parser/parse_coerce.h
+++ b/src/include/parser/parse_coerce.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_coerce.h,v 1.3 1998/07/08 14:18:45 thomas Exp $
+ * $Id: parse_coerce.h,v 1.4 1998/08/14 16:07:00 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,7 +34,8 @@ typedef enum CATEGORY {
  * - thomas 1998-05-13
  */
 #define IS_BUILTIN_TYPE(t) \
-		  (((t) == BOOLOID) \
+		  (((t) == OIDOID) \
+		|| ((t) == BOOLOID) \
 		|| ((t) == BPCHAROID) \
 		|| ((t) == VARCHAROID) \
 		|| ((t) == TEXTOID) \
@@ -69,12 +70,15 @@ typedef enum CATEGORY {
 		|| ((a) == VARCHAROID && (b) == BPCHAROID) \
 		|| ((a) == TEXTOID && (b) == BPCHAROID) \
 		|| ((a) == TEXTOID && (b) == VARCHAROID) \
+		|| ((a) == OIDOID && (b) == INT4OID) \
+		|| ((a) == INT4OID && (b) == TIMESTAMPOID) \
 		|| ((a) == DATETIMEOID && (b) == FLOAT8OID) \
 		|| ((a) == FLOAT8OID && (b) == DATETIMEOID) \
 		|| ((a) == ABSTIMEOID && (b) == TIMESTAMPOID) \
 		|| ((a) == ABSTIMEOID && (b) == INT4OID) \
 		|| ((a) == TIMESTAMPOID && (b) == ABSTIMEOID) \
 		|| ((a) == TIMESTAMPOID && (b) == INT4OID) \
+		|| ((a) == INT4OID && (b) == OIDOID) \
 		|| ((a) == INT4OID && (b) == ABSTIMEOID) \
 		|| ((a) == INT4OID && (b) == TIMESTAMPOID) \
 		|| ((a) == RELTIMEOID && (b) == INT4OID) \