From 45905425a083fb34c253f099fcb660205382844e Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 12 Mar 2005 05:21:52 +0000 Subject: [PATCH] Add warning about the need to increase "max_fsm_relations" and "max_fsm_relations" for vacuums. Also improve VACUUM VERBOSE final message text. Ron Mayer --- src/backend/storage/freespace/freespace.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c index 26b566f851..5e8c35a91e 100644 --- a/src/backend/storage/freespace/freespace.c +++ b/src/backend/storage/freespace/freespace.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.37 2004/12/31 22:00:54 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.38 2005/03/12 05:21:52 momjian Exp $ * * * NOTES: @@ -706,11 +706,25 @@ PrintFreeSpaceMapStatistics(int elevel) needed = (sumRequests + numRels) * CHUNKPAGES; ereport(elevel, - (errmsg("free space map: %d relations, %d pages stored; %.0f total pages needed", + (errmsg("free space map: %d relations, %d pages stored; %.0f total pages used", numRels, storedPages, needed), - errdetail("Allocated FSM size: %d relations + %d pages = %.0f kB shared memory.", + 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))); } /*