diff options
| author | Andrew Dunstan | 2006-06-16 20:23:45 +0000 |
|---|---|---|
| committer | Andrew Dunstan | 2006-06-16 20:23:45 +0000 |
| commit | bbcd01692bff099117f5afb0fe2d1ad182621766 (patch) | |
| tree | 07aebd51aac35be3e0e4471cbff7595a35350d67 /src/backend/rewrite | |
| parent | e79cc2db00501fb29e3e0225182147192e830fa1 (diff) | |
DROP ... IF EXISTS for the following cases:
language, tablespace, trigger, rule, opclass, function, aggregate. operator, and cast.
Diffstat (limited to 'src/backend/rewrite')
| -rw-r--r-- | src/backend/rewrite/rewriteRemove.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c index 97a4a3247d..b0acc01f82 100644 --- a/src/backend/rewrite/rewriteRemove.c +++ b/src/backend/rewrite/rewriteRemove.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.64 2006/03/05 15:58:36 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.65 2006/06/16 20:23:44 adunstan Exp $ * *------------------------------------------------------------------------- */ @@ -34,7 +34,8 @@ * Delete a rule given its name. */ void -RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior) +RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior, + bool missing_ok) { HeapTuple tuple; Oid eventRelationOid; @@ -53,10 +54,18 @@ RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior) * complain if no rule with such name exists */ if (!HeapTupleIsValid(tuple)) - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("rule \"%s\" for relation \"%s\" does not exist", - ruleName, get_rel_name(owningRel)))); + { + if (! missing_ok) + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("rule \"%s\" for relation \"%s\" does not exist", + ruleName, get_rel_name(owningRel)))); + else + ereport(NOTICE, + (errmsg("rule \"%s\" for relation \"%s\" does not exist ... skipping", + ruleName, get_rel_name(owningRel)))); + return; + } /* * Verify user has appropriate permissions. |
