diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2007-06-07 19:07:13 +0000 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2007-06-07 19:07:13 +0000 |
commit | 02c31e885d76b422ebf76ec06a5e9c5fff0975d8 (patch) | |
tree | c311da5a5d2643c908f9b6f8e8607ab111b7400d | |
parent | 7c92618676b739d76cf387f8a6c278a7f1b265a8 (diff) | |
download | postgresql-02c31e885d76b422ebf76ec06a5e9c5fff0975d8.tar.gz postgresql-02c31e885d76b422ebf76ec06a5e9c5fff0975d8.zip |
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.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 4e6ef909ba4..f686416a67c 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -13,7 +13,7 @@ * * Copyright (c) 2001-2006, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.140.2.3 2007/03/01 20:07:02 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.140.2.4 2007/06/07 19:07:13 alvherre Exp $ * ---------- */ #include "postgres.h" @@ -690,7 +690,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); } |