From 375e7d557974d43e0c059c8894ac976e90333013 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 10 Oct 2005 20:02:20 +0000 Subject: [PATCH] Use a safer order of operations in dropdb(): rollbackable operations, ie removing shared-dependency entries, should happen before non-rollbackable ones. That way a failure during the rollbackable part doesn't leave us with inconsistent state. --- src/backend/commands/dbcommands.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 49d3e1d4f5..548648066b 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.171 2005/08/22 17:38:20 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.172 2005/10/10 20:02:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -646,6 +646,11 @@ dropdb(const char *dbname) */ DeleteComments(db_id, DatabaseRelationId, 0); + /* + * Remove shared dependency references for the database. + */ + dropDatabaseDependencies(db_id); + /* * Drop pages for this database that are in the shared buffer cache. * This is important to ensure that no remaining backend tries to @@ -674,11 +679,6 @@ dropdb(const char *dbname) /* Close pg_database, but keep exclusive lock till commit */ heap_close(pgdbrel, NoLock); - /* - * Remove shared dependency references for the database. - */ - dropDatabaseDependencies(db_id); - /* * Set flag to update flat database file at commit. */ -- 2.40.0