Index: src/backend/commands/vacuumlazy.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v retrieving revision 1.88 diff -c -r1.88 vacuumlazy.c *** src/backend/commands/vacuumlazy.c 30 Apr 2007 03:23:48 -0000 1.88 --- src/backend/commands/vacuumlazy.c 9 May 2007 17:59:35 -0000 *************** *** 254,260 **** BlockNumber nblocks, blkno; HeapTupleData tuple; ! char *relname; BlockNumber empty_pages, vacuumed_pages; double num_tuples, --- 254,261 ---- BlockNumber nblocks, blkno; HeapTupleData tuple; ! char *relname, ! *relnamespace; BlockNumber empty_pages, vacuumed_pages; double num_tuples, *************** *** 267,276 **** pg_rusage_init(&ru0); relname = RelationGetRelationName(onerel); ereport(elevel, (errmsg("vacuuming \"%s.%s\"", ! get_namespace_name(RelationGetNamespace(onerel)), relname))); empty_pages = vacuumed_pages = 0; --- 268,278 ---- pg_rusage_init(&ru0); + relnamespace = get_namespace_name(RelationGetNamespace(onerel)), relname = RelationGetRelationName(onerel); ereport(elevel, (errmsg("vacuuming \"%s.%s\"", ! relnamespace, relname))); empty_pages = vacuumed_pages = 0; *************** *** 306,311 **** --- 308,322 ---- if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage && vacrelstats->num_dead_tuples > 0) { + /* Warn the user that we've exceeded maintenance_work_mem */ + if (vacrelstats->num_index_scans == 0) + ereport(WARNING, + (errmsg("exceeded maintenance_work_mem while vacuuming relation \"%s.%s\"", + relnamespace, + relname), + /* XXX would be nice to estimate how much it needs to be increased */ + errhint("Consider increasing maintenance_work_mem"))); + /* Remove index entries */ for (i = 0; i < nindexes; i++) lazy_vacuum_index(Irel[i],