mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Call pgstat_drop_database during DROP DATABASE, so that any stats file
entries for the victim database go away sooner rather than later. We already did the equivalent thing at the per-relation level, not sure why it's not been done for whole databases. With this change, pgstat_vacuum_tabstat should usually not find anything to do; though we still need it as a backstop in case DROPDB or TABPURGE messages get lost under load.
This commit is contained in:
@ -13,7 +13,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.191 2007/02/01 19:10:26 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.192 2007/02/09 16:12:18 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -37,6 +37,7 @@
|
||||
#include "commands/tablespace.h"
|
||||
#include "mb/pg_wchar.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pgstat.h"
|
||||
#include "postmaster/bgwriter.h"
|
||||
#include "storage/freespace.h"
|
||||
#include "storage/procarray.h"
|
||||
@ -644,6 +645,11 @@ dropdb(const char *dbname, bool missing_ok)
|
||||
*/
|
||||
FreeSpaceMapForgetDatabase(db_id);
|
||||
|
||||
/*
|
||||
* Tell the stats collector to forget it immediately, too.
|
||||
*/
|
||||
pgstat_drop_database(db_id);
|
||||
|
||||
/*
|
||||
* Tell bgwriter to forget any pending fsync requests for files in the
|
||||
* database; else it'll fail at next checkpoint.
|
||||
|
Reference in New Issue
Block a user