diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 5b9989d4814f921c96e6bc756b92d60708525662..4097787ec69721e2619dea22a46ee1c87f69d56e 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -13,7 +13,7 @@ * * Copyright (c) 2001-2007, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.160 2007/06/28 00:02:38 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.161 2007/07/08 22:23:16 tgl Exp $ * ---------- */ #include "postgres.h" @@ -964,8 +964,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) { @@ -984,6 +988,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 3c351161888fe90825c708857b8b5b3a4a0aaf8c..240329ae66d409b4e1e8ba8a8b75733ecf59d7ac 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.103 2007/01/05 22:19:39 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.104 2007/07/08 22:23:16 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -20,11 +20,11 @@ #include "access/xact.h" #include "access/xlogutils.h" #include "commands/tablespace.h" -#include "pgstat.h" #include "storage/bufmgr.h" #include "storage/freespace.h" #include "storage/ipc.h" #include "storage/smgr.h" +#include "utils/hsearch.h" #include "utils/memutils.h" @@ -452,13 +452,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, pgstat.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 acdd039b3e4ae49b0060d8a378065c4fd0690e76..960daac50007ff3101468255c861afc8a78ea6c9 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -5,7 +5,7 @@ * * Copyright (c) 2001-2007, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.63 2007/06/28 00:02:40 tgl Exp $ + * $PostgreSQL: pgsql/src/include/pgstat.h,v 1.64 2007/07/08 22:23:16 tgl Exp $ * ---------- */ #ifndef PGSTAT_H @@ -486,7 +486,6 @@ extern void pgstat_ping(void); extern void pgstat_report_tabstat(bool force); extern void pgstat_vacuum_tabstat(void); extern void pgstat_drop_database(Oid databaseid); -extern void pgstat_drop_relation(Oid relid); extern void pgstat_clear_snapshot(void); extern void pgstat_reset_counters(void);