diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
index 39b6ebeb72ab60c77f28ae66f7fd588ecd8e4632..f096c1b8870b49570de3bf67c9ccf0d6d058a2f5 100644
--- a/src/backend/access/common/tupdesc.c
+++ b/src/backend/access/common/tupdesc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.40 1998/06/15 19:27:45 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.41 1998/07/12 21:29:13 momjian Exp $
  *
  * NOTES
  *	  some of the executor utility code such as "ExecTypeFromTL" should be
@@ -255,7 +255,7 @@ TupleDescInitEntry(TupleDesc desc,
 				   AttrNumber attributeNumber,
 				   char *attributeName,
 				   Oid typeid,
-				   int16 typmod,
+				   int32 typmod,
 				   int attdim,
 				   bool attisset)
 {
@@ -448,7 +448,7 @@ BuildDescForRelation(List *schema, char *relname)
 	TupleConstr *constr = (TupleConstr *) palloc(sizeof(TupleConstr));
 	char	   *attname;
 	char	   *typename;
-	int16		atttypmod;
+	int32		atttypmod;
 	int			attdim;
 	int			ndef = 0;
 	bool		attisset;
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 463cbf17542d5ea849b0536595dfb1b2bb37bd7d..442bbd679d46c41a7d6d595ca5a9cbd1f4b520bd 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.43 1998/06/15 19:28:09 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.44 1998/07/12 21:29:13 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -107,7 +107,7 @@ DefaultBuild(Relation heapRelation, Relation indexRelation,
  *		AttrNumber		attnum;
  *		uint32			attnelems;
  *		int32			attcacheoff;
- *		int16			atttypmod;
+ *		int32			atttypmod;
  *		bool			attbyval;
  *		bool			attisset;
  *		char			attalign;
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 86ae89f0e70e36ca449b04da32fd582cb4dec8aa..06129e8472dea21b15e0bb25d4775608e45ad96c 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.47 1998/06/19 11:40:46 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.48 1998/07/12 21:29:14 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -205,7 +205,7 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 	FmgrInfo   *out_functions;
 	Oid			out_func_oid;
 	Oid		   *elements;
-	int16	   *typmod;
+	int32	   *typmod;
 	Datum		value;
 	bool		isnull;			/* The attribute we are copying is null */
 	char	   *nulls;
@@ -231,7 +231,7 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 	{
 		out_functions = (FmgrInfo *) palloc(attr_count * sizeof(FmgrInfo));
 		elements = (Oid *) palloc(attr_count * sizeof(Oid));
-		typmod = (int16 *) palloc(attr_count * sizeof(int16));
+		typmod = (int32 *) palloc(attr_count * sizeof(int16));
 		for (i = 0; i < attr_count; i++)
 		{
 			out_func_oid = (Oid) GetOutputFunction(attr[i]->atttypid);
@@ -378,7 +378,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 				tuples_read = 0;
 	bool		reading_to_eof = true;
 	Oid		   *elements;
-	int16	   *typmod;
+	int32	   *typmod;
 	FuncIndexInfo *finfo,
 			  **finfoP = NULL;
 	TupleDesc  *itupdescArr;
@@ -499,7 +499,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 	{
 		in_functions = (FmgrInfo *) palloc(attr_count * sizeof(FmgrInfo));
 		elements = (Oid *) palloc(attr_count * sizeof(Oid));
-		typmod = (int16 *) palloc(attr_count * sizeof(int16));
+		typmod = (int32 *) palloc(attr_count * sizeof(int16));
 		for (i = 0; i < attr_count; i++)
 		{
 			in_func_oid = (Oid) GetInputFunction(attr[i]->atttypid);
diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c
index 4a9581bd1ee8b8f01f74f55dc7dcbe5807225b58..574860a5452af58fdbfd51d9301d45f7fab74eef 100644
--- a/src/backend/nodes/makefuncs.c
+++ b/src/backend/nodes/makefuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.9 1998/02/26 04:32:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.10 1998/07/12 21:29:16 momjian Exp $
  *
  * NOTES
  *	  Creator functions in POSTGRES 4.2 are generated automatically. Most of
@@ -53,7 +53,7 @@ Var *
 makeVar(Index varno,
 		AttrNumber varattno,
 		Oid vartype,
-		int16 vartypmod,
+		int32 vartypmod,
 		Index varlevelsup,
 		Index varnoold,
 		AttrNumber varoattno)
@@ -78,7 +78,7 @@ makeVar(Index varno,
 Resdom *
 makeResdom(AttrNumber resno,
 		   Oid restype,
-		   int16 restypmod,
+		   int32 restypmod,
 		   char *resname,
 		   Index reskey,
 		   Oid reskeyop,
diff --git a/src/backend/optimizer/prep/preptlist.c b/src/backend/optimizer/prep/preptlist.c
index 3f97f7bda6cee55ebb177435bc84bd5a83aa6ba6..f5eb33db22be1a323954c5508400f1d85f127b9b 100644
--- a/src/backend/optimizer/prep/preptlist.c
+++ b/src/backend/optimizer/prep/preptlist.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.11 1998/06/15 19:28:46 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.12 1998/07/12 21:29:17 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -319,7 +319,7 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
 
 					temp_list = MakeTLE(makeResdom(attno,
 												   atttype,
-											 get_atttypmod(relid, attno),
+												   get_atttypmod(relid, attno),
 												   attname,
 												   0,
 												   (Oid) 0,
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index cedf72f3c8b5a30aa73da011f0d6d73fd81c404f..5a12754425c7315f25ebe150bea5eedfa57ef198 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.31 1998/07/08 14:04:10 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.32 1998/07/12 21:29:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,7 +31,7 @@
 #include "parser/parse_target.h"
 #include "utils/builtins.h"
 
-static Node *parser_typecast(Value *expr, TypeName *typename, int16 atttypmod);
+static Node *parser_typecast(Value *expr, TypeName *typename, int32 atttypmod);
 
 /*
  * transformExpr -
@@ -433,7 +433,7 @@ exprType(Node *expr)
 }
 
 static Node *
-parser_typecast(Value *expr, TypeName *typename, int16 atttypmod)
+parser_typecast(Value *expr, TypeName *typename, int32 atttypmod)
 {
 	/* check for passing non-ints */
 	Const	   *adt;
@@ -513,7 +513,7 @@ parser_typecast(Value *expr, TypeName *typename, int16 atttypmod)
  * Convert (only) constants to specified type.
  */
 Node *
-parser_typecast2(Node *expr, Oid exprType, Type tp, int16 atttypmod)
+parser_typecast2(Node *expr, Oid exprType, Type tp, int32 atttypmod)
 {
 	/* check for passing non-ints */
 	Const	   *adt;
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index d972876f2f590e6212f0e8bea4d7c11091ed6a42..7da194874393e07cd1cccc6b9cd323d9f359a568 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.20 1998/07/08 14:04:10 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.21 1998/07/12 21:29:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1220,7 +1220,7 @@ setup_tlist(char *attname, Oid relid)
 	Resdom	   *resnode;
 	Var		   *varnode;
 	Oid			typeid;
-	int16		type_mod;
+	int32		type_mod;
 	int			attno;
 
 	attno = get_attnum(relid, attname);
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index 1b0982d3bce3078c1ce7883d9e0f5b4d813b17e5..dd7e18e910b9c3739e247c5cd1ab18c3cc638a9e 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.16 1998/05/29 14:00:21 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.17 1998/07/12 21:29:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -222,7 +222,7 @@ make_var(ParseState *pstate, Oid relid, char *refname,
 	int			vnum,
 				attid;
 	Oid			vartypeid;
-	int16		type_mod;
+	int32		type_mod;
 	int			sublevels_up;
 
 	vnum = refnameRangeTablePosn(pstate, refname, &sublevels_up);
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index ceb489990a74adb892c9b5c13e16908278441e01..4dda58a2c78a8f2f336fcc6003a896eb49581d0c 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.17 1998/07/08 14:04:11 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.18 1998/07/12 21:29:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,7 +41,7 @@ Node *
 SizeTargetExpr(ParseState *pstate,
 			   Node *expr,
 			   Oid attrtype,
-			   int16 attrtypmod);
+			   int32 attrtypmod);
 
 
 /* transformTargetIdent()
@@ -92,7 +92,7 @@ transformTargetIdent(ParseState *pstate,
 					resdomno_target;
 		RangeTblEntry *rte;
 		char	   *target_colname;
-		int16		attrtypmod,
+		int32		attrtypmod,
 					attrtypmod_target;
 
 		target_colname = *resname;
@@ -154,7 +154,7 @@ printf("transformTargetIdent- transform type %d to %d\n",
 	if (expr == NULL)
 	{
 		char   *name;
-		int16	type_mod;
+		int32	type_mod;
 
 		name = ((*resname != NULL)? *resname: colname);
 
@@ -333,7 +333,7 @@ printf("transformTargetList: decode T_Expr\n");
 			case T_Attr:
 				{
 					Oid			type_id;
-					int16		type_mod;
+					int32		type_mod;
 					Attr	   *att = (Attr *) res->val;
 					Node	   *result;
 					char	   *attrname;
@@ -507,7 +507,7 @@ Node *
 SizeTargetExpr(ParseState *pstate,
 			   Node *expr,
 			   Oid attrtype,
-			   int16 attrtypmod)
+			   int32 attrtypmod)
 {
 	int			i;
 	HeapTuple	ftup;
@@ -579,7 +579,7 @@ MakeTargetlistExpr(ParseState *pstate,
 {
 	Oid			type_id,
 				attrtype;
-	int16		type_mod,
+	int32		type_mod,
 				attrtypmod;
 	int			resdomno;
 	Relation	rd;
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index c611c589c464101cf17ea549e59388baedb15577..ea6a4a096b958b8a6d9c7e51bf5500b9856bbba5 100644
--- a/src/backend/parser/parse_type.c
+++ b/src/backend/parser/parse_type.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.11 1998/06/15 19:28:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.12 1998/07/12 21:29:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -138,7 +138,7 @@ typeTypeFlag(Type t)
 /* Given a type structure and a string, returns the internal form of
    that string */
 char *
-stringTypeString(Type tp, char *string, int16 atttypmod)
+stringTypeString(Type tp, char *string, int32 atttypmod)
 {
 	Oid			op;
 	Oid			typelem;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index 3b60534278f17871eed9c583d2cfdb090aa0eadc..b3c898cbcf429ca8b4cad4d95c59b16f5c0c280a 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.30 1998/06/15 19:29:32 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.31 1998/07/12 21:29:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@
 static int	_ArrayCount(char *str, int dim[], int typdelim);
 static char *
 _ReadArrayStr(char *arrayStr, int nitems, int ndim, int dim[],
-			  FmgrInfo *inputproc, Oid typelem, int16 typmod,
+			  FmgrInfo *inputproc, Oid typelem, int32 typmod,
 			  char typdelim, int typlen, bool typbyval,
 			  char typalign, int *nbytes);
 
@@ -94,7 +94,7 @@ static char *array_seek(char *ptr, int eltsize, int nitems);
 char *
 array_in(char *string,			/* input array in external form */
 		 Oid element_type,		/* type OID of an array element */
-		 int16 typmod)
+		 int32 typmod)
 {
 	int			typlen;
 	bool		typbyval,
@@ -360,7 +360,7 @@ _ReadArrayStr(char *arrayStr,
 			  FmgrInfo *inputproc,		/* function used for the
 										 * conversion */
 			  Oid typelem,
-			  int16 typmod,
+			  int32 typmod,
 			  char typdelim,
 			  int typlen,
 			  bool typbyval,
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index be7130896efaa377fe8da11267e1d54a13eaff56..29ffacd014f9984c4db43bece12334cbaa9b908b 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.34 1998/06/16 06:41:50 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.35 1998/07/12 21:29:23 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -57,7 +57,7 @@ char	   *convertstr(char *, int, int);
  *	  because we pass typelem as the second argument for array_in.)
  */
 char *
-bpcharin(char *s, int dummy, int16 atttypmod)
+bpcharin(char *s, int dummy, int32 atttypmod)
 {
 	char	   *result,
 			   *r;
@@ -291,7 +291,7 @@ printf("bpchar- convert string length %d (%d) ->%d\n",
  *	  because we pass typelem as the second argument for array_in.)
  */
 char *
-varcharin(char *s, int dummy, int16 atttypmod)
+varcharin(char *s, int dummy, int32 atttypmod)
 {
 	char	   *result;
 	int			len;
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
index 08ee8ea2dd8ebfdcd82b5a9b3e7d2dd46b9ed711..97b739195e6ff4d061c340221d937583e2354315 100644
--- a/src/backend/utils/cache/lsyscache.c
+++ b/src/backend/utils/cache/lsyscache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.14 1998/06/15 19:29:40 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.15 1998/07/12 21:29:24 momjian Exp $
  *
  * NOTES
  *	  Eventually, the index information should go through here, too.
@@ -161,7 +161,7 @@ get_attisset(Oid relid, char *attname)
  *		return the "atttypmod" field from the attribute relation.
  *
  */
-int16
+int32
 get_atttypmod(Oid relid, AttrNumber attnum)
 {
 	FormData_pg_attribute att_tup;
@@ -169,7 +169,7 @@ get_atttypmod(Oid relid, AttrNumber attnum)
 	if (SearchSysCacheStruct(ATTNUM,
 							 (char *) &att_tup,
 							 ObjectIdGetDatum(relid),
-							 UInt16GetDatum(attnum),
+							 Int32GetDatum(attnum),
 							 0, 0))
 		return att_tup.atttypmod;
 	else
diff --git a/src/include/access/tupdesc.h b/src/include/access/tupdesc.h
index 276a83b86b39ba59b29057a43a95e1bbe327d5f8..add88f5e77d2bc92deedbdf839b45bb3e7c632de 100644
--- a/src/include/access/tupdesc.h
+++ b/src/include/access/tupdesc.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: tupdesc.h,v 1.16 1998/02/26 04:40:31 momjian Exp $
+ * $Id: tupdesc.h,v 1.17 1998/07/12 21:29:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -70,7 +70,7 @@ TupleDescInitEntry(TupleDesc desc,
 				   AttrNumber attributeNumber,
 				   char *attributeName,
 				   Oid typeid,
-				   int16 typmod,
+				   int32 typmod,
 				   int attdim,
 				   bool attisset);
 
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index 526db5f5f6fa492dc4770aa1de1346c4b0b9d631..09a424f1435979a4a8a831ea6453fc2892d24e45 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_attribute.h,v 1.32 1998/03/07 04:49:57 momjian Exp $
+ * $Id: pg_attribute.h,v 1.33 1998/07/12 21:29:28 momjian Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -86,7 +86,7 @@ CATALOG(pg_attribute) BOOTSTRAP
 	 * This speeds up the attribute walking process.
 	 */
 
-	int2		atttypmod;
+	int4		atttypmod;
 
 	/*
 	 * atttypmod records type-specific modifications supplied at table
@@ -323,7 +323,7 @@ DATA(insert OID = 0 ( 1261 cmax				29 0  4  -6 0 -1 -1 t f i f f));
 { 1249, {"attnum"},		  21, 0,	2,	6, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
 { 1249, {"attnelems"},	  23, 0,	4,	7, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
 { 1249, {"attcacheoff"},  23, 0,	4,	8, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1249, {"atttypmod"},	  21, 0,	2,	9, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
+{ 1249, {"atttypmod"},	  21, 0,	4,	9, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
 { 1249, {"attbyval"},	  16, 0,	1, 10, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
 { 1249, {"attisset"},	  16, 0,	1, 11, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
 { 1249, {"attalign"},	  18, 0,	1, 12, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
@@ -338,7 +338,7 @@ DATA(insert OID = 0 ( 1249 attlen			21 0  2   5 0 -1 -1 t f s f f));
 DATA(insert OID = 0 ( 1249 attnum			21 0  2   6 0 -1 -1 t f s f f));
 DATA(insert OID = 0 ( 1249 attnelems		23 0  4   7 0 -1 -1 t f i f f));
 DATA(insert OID = 0 ( 1249 attcacheoff		23 0  4   8 0 -1 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 atttypmod		21 0  2   9 0 -1 -1 t f s f f));
+DATA(insert OID = 0 ( 1249 atttypmod		21 0  4   9 0 -1 -1 t f s f f));
 DATA(insert OID = 0 ( 1249 attbyval			16 0  1  10 0 -1 -1 t f c f f));
 DATA(insert OID = 0 ( 1249 attisset			16 0  1  11 0 -1 -1 t f c f f));
 DATA(insert OID = 0 ( 1249 attalign			18 0  1  12 0 -1 -1 t f c f f));
diff --git a/src/include/nodes/makefuncs.h b/src/include/nodes/makefuncs.h
index 9ab40e1a2d788e4e416a17c5ce80386bc59769dd..62ed3d76b87ebf69abef616506209db875984036 100644
--- a/src/include/nodes/makefuncs.h
+++ b/src/include/nodes/makefuncs.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: makefuncs.h,v 1.11 1998/02/26 04:41:56 momjian Exp $
+ * $Id: makefuncs.h,v 1.12 1998/07/12 21:29:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,7 +27,7 @@ extern Var *
 makeVar(Index varno,
 		AttrNumber varattno,
 		Oid vartype,
-		int16 vartypmod,
+		int32 vartypmod,
 		Index varlevelsup,
 		Index varnoold,
 		AttrNumber varoattno);
@@ -35,7 +35,7 @@ makeVar(Index varno,
 extern Resdom *
 makeResdom(AttrNumber resno,
 		   Oid restype,
-		   int16 restypmod,
+		   int32 restypmod,
 		   char *resname,
 		   Index reskey,
 		   Oid reskeyop,
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 15137731393f9e91c707579ec852eb95fc7a74bf..95a014409d9a0ce5d923b95fef53dda780912df2 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.49 1998/02/26 04:41:59 momjian Exp $
+ * $Id: parsenodes.h,v 1.50 1998/07/12 21:29:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -644,7 +644,7 @@ typedef struct TypeName
 	char	   *name;			/* name of the type */
 	bool		timezone;		/* timezone specified? */
 	bool		setof;			/* is a set? */
-	int16		typmod;			/* type modifier */
+	int32		typmod;			/* type modifier */
 	List	   *arrayBounds;	/* array bounds */
 } TypeName;
 
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index e8c7a957477be35c025ba0d28244d15a553474b0..1a62b3887905b20aed2601f0d0f3330ae6653847 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: primnodes.h,v 1.21 1998/02/26 04:42:02 momjian Exp $
+ * $Id: primnodes.h,v 1.22 1998/07/12 21:29:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,7 +41,7 @@ typedef struct Resdom
 	NodeTag		type;
 	AttrNumber	resno;
 	Oid			restype;
-	int16		restypmod;
+	int32		restypmod;
 	char	   *resname;
 	Index		reskey;
 	Oid			reskeyop;
@@ -124,7 +124,7 @@ typedef struct Var
 	Index		varno;
 	AttrNumber	varattno;
 	Oid			vartype;
-	int16		vartypmod;
+	int32		vartypmod;
 	Index		varlevelsup;	/* erased by upper optimizer */
 	Index		varnoold;		/* only used by optimizer */
 	AttrNumber	varoattno;		/* only used by optimizer */
diff --git a/src/include/parser/parse_expr.h b/src/include/parser/parse_expr.h
index 1a990e4518f1d052d1621f971c502baeb4d90232..9e02458c8e2c67580f6a0d8d1b0fcf3d6de47990 100644
--- a/src/include/parser/parse_expr.h
+++ b/src/include/parser/parse_expr.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_expr.h,v 1.8 1998/02/26 04:42:41 momjian Exp $
+ * $Id: parse_expr.h,v 1.9 1998/07/12 21:29:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,6 +21,6 @@
 extern Node *transformExpr(ParseState *pstate, Node *expr, int precedence);
 extern Node *transformIdent(ParseState *pstate, Node *expr, int precedence);
 extern Oid	exprType(Node *expr);
-extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int16 attypmod);
+extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int32 attypmod);
 
 #endif							/* PARSE_EXPR_H */
diff --git a/src/include/parser/parse_type.h b/src/include/parser/parse_type.h
index 12b489839ad6f663a8b68a9af4e481b059d22d4a..7ea8e38329722e4b7910a4a6285d78657b9b1b93 100644
--- a/src/include/parser/parse_type.h
+++ b/src/include/parser/parse_type.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_type.h,v 1.6 1998/02/26 04:42:50 momjian Exp $
+ * $Id: parse_type.h,v 1.7 1998/07/12 21:29:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,7 +26,7 @@ extern int16 typeLen(Type t);
 extern bool typeByVal(Type t);
 extern char *typeTypeName(Type t);
 extern char typeTypeFlag(Type t);
-extern char *stringTypeString(Type tp, char *string, int16 atttypmod);
+extern char *stringTypeString(Type tp, char *string, int32 atttypmod);
 extern Oid	typeidOutfunc(Oid type_id);
 extern Oid	typeidTypeRelid(Oid type_id);
 extern Oid	typeTypeRelid(Type typ);
diff --git a/src/include/utils/array.h b/src/include/utils/array.h
index 86603cd453a01083348e236afb788018004140b3..c5b8804151dea35013c88ba2ea3f4216987dea23 100644
--- a/src/include/utils/array.h
+++ b/src/include/utils/array.h
@@ -10,7 +10,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: array.h,v 1.11 1998/02/26 04:43:45 momjian Exp $
+ * $Id: array.h,v 1.12 1998/07/12 21:29:38 momjian Exp $
  *
  * NOTES
  *	  XXX the data array should be LONGALIGN'd -- notice that the array
@@ -114,7 +114,7 @@ typedef struct
 /*
  * prototypes for functions defined in arrayfuncs.c
  */
-extern char *array_in(char *string, Oid element_type, int16 typmod);
+extern char *array_in(char *string, Oid element_type, int32 typmod);
 extern char *array_out(ArrayType *v, Oid element_type);
 extern char *array_dims(ArrayType *v, bool *isNull);
 extern Datum
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index c672e42c27bf6b6fc00f5ec5c685628a95b6fdac..e359c526f00e254698222fb3aa61f2149542bdeb 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.45 1998/07/08 14:10:30 thomas Exp $
+ * $Id: builtins.h,v 1.46 1998/07/12 21:29:38 momjian Exp $
  *
  * NOTES
  *	  This should normally only be included by fmgr.h.
@@ -395,7 +395,7 @@ DateTime   *timestamp_datetime(time_t timestamp);
 time_t		datetime_timestamp(DateTime *datetime);
 
 /* varchar.c */
-extern char *bpcharin(char *s, int dummy, int16 atttypmod);
+extern char *bpcharin(char *s, int dummy, int32 atttypmod);
 extern char *bpcharout(char *s);
 extern char *bpchar(char *s, int32 slen);
 extern char *char_bpchar(int32 c);
@@ -413,7 +413,7 @@ extern int32 bpcharlen(char *arg);
 extern int32 bpcharoctetlen(char *arg);
 extern uint32 hashbpchar(struct varlena * key);
 
-extern char *varcharin(char *s, int dummy, int16 atttypmod);
+extern char *varcharin(char *s, int dummy, int32 atttypmod);
 extern char *varcharout(char *s);
 extern char *varchar(char *s, int32 slen);
 extern bool varchareq(char *arg1, char *arg2);
diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h
index 6bc94a874ca4b1abf38d084e08689e2cf59a5812..e7408dd34fd96a3c79a147e5046b56a0465cc60f 100644
--- a/src/include/utils/lsyscache.h
+++ b/src/include/utils/lsyscache.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: lsyscache.h,v 1.10 1998/02/26 04:44:07 momjian Exp $
+ * $Id: lsyscache.h,v 1.11 1998/07/12 21:29:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,7 +21,7 @@ extern char *get_attname(Oid relid, AttrNumber attnum);
 extern AttrNumber get_attnum(Oid relid, char *attname);
 extern Oid	get_atttype(Oid relid, AttrNumber attnum);
 extern bool get_attisset(Oid relid, char *attname);
-extern int16 get_atttypmod(Oid relid, AttrNumber attnum);
+extern int32 get_atttypmod(Oid relid, AttrNumber attnum);
 extern RegProcedure get_opcode(Oid opid);
 extern char *get_opname(Oid opid);
 extern bool