*** fd.c.prev	Mon Dec 18 16:09:51 2006
--- fd.c	Mon Dec 18 16:09:31 2006
***************
*** 939,944 ****
--- 939,945 ----
  FileClose(File file)
  {
  	Vfd		   *vfdP;
+ 	struct stat  u	filestats;
  
  	Assert(FileIsValid(file));
  
***************
*** 968,973 ****
--- 969,982 ----
  	{
  		/* reset flag so that die() interrupt won't cause problems */
  		vfdP->fdstate &= ~FD_TEMPORARY;
+ 	if (fstat(vfdP->fd, &filestats)) {
+ 		ereport(WARNING,
+ 			(errmsg("A temporary file of %d bytes was used",
+ 				filestats.st_size),
+ 				errhint("You many need to increase work_mem.")));
+ 	} else {
+ 		elog(ERROR, "Could not stat \"%s\": %m", vfdP->fileName);
+ 	}
  		if (unlink(vfdP->fileName))
  			elog(LOG, "failed to unlink \"%s\": %m",
  				 vfdP->fileName);
