summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera2007-06-07 18:53:17 +0000
committerAlvaro Herrera2007-06-07 18:53:17 +0000
commit2d9d7a6bf56801e38ba93e22346a5ef3b9ac73ea (patch)
tree1683fcb098d9dff54dbb726689b22f7f1e27b4cd
parent04d919a11aefcba77569c5d4b897c4f583e05c5f (diff)
Avoid losing track of data for shared tables in pgstats. Report by Michael
Fuhr, patch from Tom Lane after a messier suggestion by me.
-rw-r--r--src/backend/postmaster/pgstat.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index e23a665cd2b..b419af2ac30 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.158 2007/05/27 17:28:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.159 2007/06/07 18:53:17 alvherre Exp $
* ----------
*/
#include "postgres.h"
@@ -813,7 +813,9 @@ pgstat_vacuum_tabstat(void)
CHECK_FOR_INTERRUPTS();
- if (hash_search(htab, (void *) &dbid, HASH_FIND, NULL) == NULL)
+ /* the DB entry for shared tables (with InvalidOid) is never dropped */
+ if (OidIsValid(dbid) &&
+ hash_search(htab, (void *) &dbid, HASH_FIND, NULL) == NULL)
pgstat_drop_database(dbid);
}