diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 71ae1ebf8139b8ffc108b9977f70802440df8916..32eb247077703413077e9d1607f65a3128f53ca7 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.80 1999/05/13 07:28:26 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.81 1999/05/19 16:46:10 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1514,7 +1514,7 @@ StoreAttrDefault(Relation rel, AttrDefault *attrdef)
 	char		nulls[4] = {' ', ' ', ' ', ' '};
 	extern GlobalMemory CacheCxt;
 
-start:;
+start:
 	/* Surround table name with double quotes to allow mixed-case and
 	 * whitespaces in names. - BGA 1998-11-14
 	 */
@@ -1537,7 +1537,21 @@ start:;
 
 	if (type != atp->atttypid)
 	{
-		if (IS_BINARY_COMPATIBLE(type, atp->atttypid))
+		/*
+		 *	Though these types are binary compatible, bpchar has a fixed
+		 *	length on the disk, requiring non-bpchar types to be padded
+		 *	before storage in the default table.  bjm 1999/05/18
+		 */
+		if (atp->atttypid == BPCHAROID &&
+			(type == TEXTOID || type == BPCHAROID || type == UNKNOWNOID))
+		{
+			if (can_coerce_type(1, &(type), &(atp->atttypid)))
+				expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid);
+			else
+				elog(ERROR, "DEFAULT clause const type '%s' can not be converted to char().",
+					 typeidTypeName(type));
+		}
+		else if (IS_BINARY_COMPATIBLE(type, atp->atttypid))
 			; /* use without change */
 		else if (can_coerce_type(1, &(type), &(atp->atttypid)))
 			expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid);
@@ -1556,8 +1570,7 @@ start:;
 
 	adbin = nodeToString(expr);
 	oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
-	attrdef->adbin = (char *) palloc(strlen(adbin) + 1);
-	strcpy(attrdef->adbin, adbin);
+	attrdef->adbin = pstrdup(adbin);
 	(void) MemoryContextSwitchTo(oldcxt);
 	pfree(adbin);
 
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index f4fdb63637dc32fcf6b2120923efa63a63287eb3..f3dec72128b72b672a3a24cf319f3b859ad87654 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- *  $Id: outfuncs.c,v 1.83 1999/05/18 21:34:28 tgl Exp $
+ *  $Id: outfuncs.c,v 1.84 1999/05/19 16:46:11 momjian Exp $
  *
  * NOTES
  *	  Every (plan) node in POSTGRES has an associated "out" routine which
@@ -1203,18 +1203,14 @@ _outDatum(StringInfo str, Datum value, Oid type)
 		s = (char *) (&value);
 		appendStringInfo(str, " %d [ ", length);
 		for (i = 0; i < sizeof(Datum); i++)
-		{
 			appendStringInfo(str, " %d ", (int) (s[i]));
-		}
 		appendStringInfo(str, "] ");
 	}
 	else
 	{							/* !byValue */
 		s = (char *) DatumGetPointer(value);
 		if (!PointerIsValid(s))
-		{
 			appendStringInfo(str, " 0 [ ] ");
-		}
 		else
 		{
 			/*
diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c
index e4aa2be9b60c5a6740d979d6eacdc4aa7b9f425d..3c2f1a3bd9aa14407b1713b256fbad44781e4614 100644
--- a/src/backend/nodes/read.c
+++ b/src/backend/nodes/read.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.14 1999/02/13 23:16:01 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.15 1999/05/19 16:46:11 momjian Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -26,7 +26,7 @@
 
 /*
  * stringToNode -
- *	  returns a Node with a given legal ascii representation
+ *	  returns a Node with a given legal ASCII representation
  */
 void *
 stringToNode(char *str)
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 6f672222ad1551b178b5639ebacc5c3b8a9d583b..70cb970a50ec3b87ef75881d2fb5b67e6e7ab295 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.12 1999/05/10 00:45:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.13 1999/05/19 16:46:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,7 +75,6 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId)
 		 */
 		else if (inputTypeId != UNKNOWNOID)
 		{
-
 			/*
 			 * We already know there is a function which will do this, so
 			 * let's use it