diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index b130a842aff00db3afa1e9e16002f94d360a0bbb..788f6f4dfa6c683b6876e0800f82368d2e04e26b 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.126 2004/09/30 00:24:21 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.127 2004/10/25 03:08:29 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -486,15 +486,17 @@ transformAssignmentIndirection(ParseState *pstate,
 			if (!typrelid)
 				ereport(ERROR,
 						(errcode(ERRCODE_DATATYPE_MISMATCH),
-						 errmsg("cannot assign to a column of type %s because it is not a composite type",
+						 errmsg("cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type",
+								strVal(n), targetName,
 								format_type_be(targetTypeId))));
 
 			attnum = get_attnum(typrelid, strVal(n));
 			if (attnum == InvalidAttrNumber)
 				ereport(ERROR,
 						(errcode(ERRCODE_UNDEFINED_COLUMN),
-						 errmsg("column \"%s\" not found in data type %s",
-							  strVal(n), format_type_be(targetTypeId))));
+						 errmsg("cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s",
+								strVal(n), targetName,
+								format_type_be(targetTypeId))));
 			if (attnum < 0)
 				ereport(ERROR,
 						(errcode(ERRCODE_UNDEFINED_COLUMN),