diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 23dd081ae99..db309c7e14d 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -13,7 +13,7 @@ * * Copyright (c) 2001-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.111.2.8 2007/06/07 19:07:11 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.111.2.9 2007/07/08 22:23:32 tgl Exp $ * ---------- */ #include "postgres.h" @@ -1070,8 +1070,12 @@ pgstat_drop_database(Oid databaseid) * Tell the collector that we just dropped a relation. * (If the message gets lost, we will still clean the dead entry eventually * via future invocations of pgstat_vacuum_tabstat().) + * + * Currently not used for lack of any good place to call it; we rely + * entirely on pgstat_vacuum_tabstat() to clean out stats for dead rels. * ---------- */ +#ifdef NOT_USED void pgstat_drop_relation(Oid relid) { @@ -1090,6 +1094,7 @@ pgstat_drop_relation(Oid relid) msg.m_databaseid = MyDatabaseId; pgstat_send(&msg, len); } +#endif /* NOT_USED */ /* ---------- diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index ea5075e12df..a21c3089e68 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.93.2.3 2006/03/30 22:11:59 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.93.2.4 2007/07/08 22:23:32 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -19,7 +19,6 @@ #include "access/xact.h" #include "commands/tablespace.h" -#include "pgstat.h" #include "storage/bufmgr.h" #include "storage/freespace.h" #include "storage/ipc.h" @@ -471,13 +470,11 @@ smgr_internal_unlink(RelFileNode rnode, int which, bool isTemp, bool isRedo) FreeSpaceMapForgetRel(&rnode); /* - * Tell the stats collector to forget it immediately, too. Skip this - * in recovery mode, since the stats collector likely isn't running - * (and if it is, pgstats.c will get confused because we aren't a real - * backend process). + * It'd be nice to tell the stats collector to forget it immediately, too. + * But we can't because we don't know the OID (and in cases involving + * relfilenode swaps, it's not always clear which table OID to forget, + * anyway). */ - if (!InRecovery) - pgstat_drop_relation(rnode.relNode); /* * And delete the physical files. diff --git a/src/include/pgstat.h b/src/include/pgstat.h index d49e30b098b..08397779791 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -5,7 +5,7 @@ * * Copyright (c) 2001-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.38.2.1 2006/01/18 20:35:16 tgl Exp $ + * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.38.2.2 2007/07/08 22:23:32 tgl Exp $ * ---------- */ #ifndef PGSTAT_H @@ -412,7 +412,6 @@ extern void pgstat_report_analyze(Oid tableoid, bool shared, PgStat_Counter livetuples, PgStat_Counter deadtuples); extern void pgstat_vacuum_tabstat(void); -extern void pgstat_drop_relation(Oid relid); extern void pgstat_reset_counters(void);