diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
new file mode 100644
index 3720a0f..b88b664
*** a/src/backend/commands/tablecmds.c
--- b/src/backend/commands/tablecmds.c
*************** MergeAttributes(List *schema, List *supe
*** 1756,1767 ****
--- 1756,1771 ----
  	 */
  	if (inhSchema != NIL)
  	{
+ 		int		schema_attno = 0;
+ 
  		foreach(entry, schema)
  		{
  			ColumnDef  *newdef = lfirst(entry);
  			char	   *attributeName = newdef->colname;
  			int			exist_attno;
  
+ 			schema_attno++;
+ 
  			/*
  			 * Does it conflict with some previously inherited column?
  			 */
*************** MergeAttributes(List *schema, List *supe
*** 1780,1788 ****
  				 * Yes, try to merge the two column definitions. They must
  				 * have the same type, typmod, and collation.
  				 */
! 				ereport(NOTICE,
! 				   (errmsg("merging column \"%s\" with inherited definition",
! 						   attributeName)));
  				def = (ColumnDef *) list_nth(inhSchema, exist_attno - 1);
  				typenameTypeIdAndMod(NULL, def->typeName, &defTypeId, &deftypmod);
  				typenameTypeIdAndMod(NULL, newdef->typeName, &newTypeId, &newtypmod);
--- 1784,1797 ----
  				 * Yes, try to merge the two column definitions. They must
  				 * have the same type, typmod, and collation.
  				 */
! 				 if (exist_attno == schema_attno)
! 					ereport(NOTICE,
! 					   (errmsg("merging column \"%s\" with inherited definition",
! 							   attributeName)));
! 				else
! 					ereport(NOTICE,
! 					   (errmsg("moving and merging column \"%s\" with inherited definition", attributeName),
! 						errdetail("user-specified column moved to the location of the inherited column")));
  				def = (ColumnDef *) list_nth(inhSchema, exist_attno - 1);
  				typenameTypeIdAndMod(NULL, def->typeName, &defTypeId, &deftypmod);
  				typenameTypeIdAndMod(NULL, newdef->typeName, &newTypeId, &newtypmod);
