From c22cbb7a13384b84f55db35513b7220b72278499 Mon Sep 17 00:00:00 2001 From: Hadi Moshayedi Date: Mon, 22 Oct 2018 23:51:39 -0400 Subject: [PATCH] Don't throw error for DROP DATABASE IF EXISTS --- src/backend/distributed/executor/multi_utility.c | 8 ++++++-- src/test/regress/expected/multi_utility_statements.out | 5 +++++ src/test/regress/sql/multi_utility_statements.sql | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/backend/distributed/executor/multi_utility.c b/src/backend/distributed/executor/multi_utility.c index ccfe3135a..12ca7e709 100644 --- a/src/backend/distributed/executor/multi_utility.c +++ b/src/backend/distributed/executor/multi_utility.c @@ -549,11 +549,15 @@ multi_ProcessUtility(PlannedStmt *pstmt, */ if (IsA(parsetree, DropdbStmt)) { + const bool missingOK = true; DropdbStmt *dropDbStatement = (DropdbStmt *) parsetree; char *dbname = dropDbStatement->dbname; - Oid databaseOid = get_database_oid(dbname, false); + Oid databaseOid = get_database_oid(dbname, missingOK); - StopMaintenanceDaemon(databaseOid); + if (databaseOid != InvalidOid) + { + StopMaintenanceDaemon(databaseOid); + } } /* set user if needed and go ahead and run local utility using standard hook */ diff --git a/src/test/regress/expected/multi_utility_statements.out b/src/test/regress/expected/multi_utility_statements.out index ad68fa8f2..b995e2f6a 100644 --- a/src/test/regress/expected/multi_utility_statements.out +++ b/src/test/regress/expected/multi_utility_statements.out @@ -268,3 +268,8 @@ FETCH BACKWARD noHoldCursor; COMMIT; FETCH ABSOLUTE 5 FROM noHoldCursor; ERROR: cursor "noholdcursor" does not exist +-- Test we don't throw an error for DROP IF EXISTS +DROP DATABASE IF EXISTS not_existing_database; +NOTICE: database "not_existing_database" does not exist, skipping +DROP TABLE IF EXISTS not_existing_table; +NOTICE: table "not_existing_table" does not exist, skipping diff --git a/src/test/regress/sql/multi_utility_statements.sql b/src/test/regress/sql/multi_utility_statements.sql index d3ab57950..8a5b18c83 100644 --- a/src/test/regress/sql/multi_utility_statements.sql +++ b/src/test/regress/sql/multi_utility_statements.sql @@ -146,3 +146,7 @@ FETCH ABSOLUTE 5 FROM noHoldCursor; FETCH BACKWARD noHoldCursor; COMMIT; FETCH ABSOLUTE 5 FROM noHoldCursor; + +-- Test we don't throw an error for DROP IF EXISTS +DROP DATABASE IF EXISTS not_existing_database; +DROP TABLE IF EXISTS not_existing_table;