Index: src/backend/storage/freespace/freespace.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/storage/freespace/freespace.c,v
retrieving revision 1.37
diff -c -c -r1.37 freespace.c
*** src/backend/storage/freespace/freespace.c	31 Dec 2004 22:00:54 -0000	1.37
--- src/backend/storage/freespace/freespace.c	12 Mar 2005 05:05:47 -0000
***************
*** 706,716 ****
  	needed = (sumRequests + numRels) * CHUNKPAGES;
  
  	ereport(elevel,
! 			(errmsg("free space map: %d relations, %d pages stored; %.0f total pages needed",
  					numRels, storedPages, needed),
! 			 errdetail("Allocated FSM size: %d relations + %d pages = %.0f kB shared memory.",
  					   MaxFSMRelations, MaxFSMPages,
  					   (double) FreeSpaceShmemSize() / 1024.0)));
  }
  
  /*
--- 706,730 ----
  	needed = (sumRequests + numRels) * CHUNKPAGES;
  
  	ereport(elevel,
! 			(errmsg("free space map: %d relations, %d pages stored; %.0f total pages used",
  					numRels, storedPages, needed),
! 			 errdetail("FSM size: %d relations + %d pages = %.0f kB shared memory.",
  					   MaxFSMRelations, MaxFSMPages,
  					   (double) FreeSpaceShmemSize() / 1024.0)));
+     
+ 	if (numRels == MaxFSMRelations)
+ 		ereport(NOTICE,
+ 			(errmsg("max_fsm_relations(%d) equals the number of relations checked",
+ 			 MaxFSMRelations),
+ 			 errhint("You have >= %d relations.\n"
+ 			 		 "Consider increasing the configuration parameter \"max_fsm_relations\".",
+ 					 numRels)));
+ 	else if (needed > MaxFSMPages)
+ 		ereport(NOTICE,
+ 			(errmsg("the number of page slots needed (%.0f) exceeds max_fsm_pages (%d)",
+ 			 needed,MaxFSMPages),
+ 			 errhint("Consider increasing the configuration parameter \"max_fsm_relations\"\n"
+ 					 "to a value over %.0f.", needed)));
  }
  
  /*
