diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2006-02-04 19:06:47 +0000 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2006-02-04 19:06:47 +0000 |
commit | f8b54fe6ed7a2eae575d365091d136b4a4068316 (patch) | |
tree | 4f3eedce55525759add7704eef65ea66c69989d2 /src/backend/commands/user.c | |
parent | 3fa9c416ed14f1d46567fdcf99c8d639034dbeec (diff) |
DROP IF EXISTS for ROLE/USER/GROUP
Diffstat (limited to 'src/backend/commands/user.c')
-rw-r--r-- | src/backend/commands/user.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index 0ffcc215017..b3aa2ed8295 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.167 2005/12/23 16:46:39 petere Exp $ + * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.168 2006/02/04 19:06:46 adunstan Exp $ * *------------------------------------------------------------------------- */ @@ -840,9 +840,22 @@ DropRole(DropRoleStmt *stmt) PointerGetDatum(role), 0, 0, 0); if (!HeapTupleIsValid(tuple)) - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("role \"%s\" does not exist", role))); + { + if (!stmt->missing_ok) + { + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("role \"%s\" does not exist", role))); + } + else + { + ereport(NOTICE, + (errmsg("role \"%s\" does not exist, skipping", + role))); + } + + continue; + } roleid = HeapTupleGetOid(tuple); |