From bac7d7b53b6e0a82c61421550cb1960358862850 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Thu, 7 Jun 2007 19:07:11 +0000 Subject: [PATCH] Avoid losing track of data for shared tables in pgstats. Report by Michael Fuhr, patch from Tom Lane after a messier suggestion by me. --- src/backend/postmaster/pgstat.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index d41d5c54cba..23dd081ae99 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.7 2007/01/11 23:06:16 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.111.2.8 2007/06/07 19:07:11 alvherre Exp $ * ---------- */ #include "postgres.h" @@ -919,7 +919,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); }