aboutsummaryrefslogtreecommitdiff
path: root/src/backend/rewrite/rewriteRemove.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-04-27 03:45:03 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-04-27 03:45:03 +0000
commit31c775adeb2251a9c66328cbc9016877e5e4f085 (patch)
tree065014ccecaae449f8a1c977319e823d54364c4b /src/backend/rewrite/rewriteRemove.c
parentaafe72efb2d9a01db77bacf94b9b103042b5eb60 (diff)
downloadpostgresql-31c775adeb2251a9c66328cbc9016877e5e4f085.tar.gz
postgresql-31c775adeb2251a9c66328cbc9016877e5e4f085.zip
Restructure aclcheck error reporting to make permission-failure
messages more uniform and internationalizable: the global array aclcheck_error_strings[] is gone in favor of a subroutine aclcheck_error(). Partial implementation of namespace-related permission checks --- not all done yet.
Diffstat (limited to 'src/backend/rewrite/rewriteRemove.c')
-rw-r--r--src/backend/rewrite/rewriteRemove.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c
index df85fa504a0..97bf6589c90 100644
--- a/src/backend/rewrite/rewriteRemove.c
+++ b/src/backend/rewrite/rewriteRemove.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.48 2002/04/18 20:01:09 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.49 2002/04/27 03:45:03 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,7 @@ RemoveRewriteRule(Oid owningRel, const char *ruleName)
Oid ruleId;
Oid eventRelationOid;
bool hasMoreRules;
- int32 aclcheck_result;
+ AclResult aclresult;
/*
* Open the pg_rewrite relation.
@@ -82,12 +82,9 @@ RemoveRewriteRule(Oid owningRel, const char *ruleName)
/*
* Verify user has appropriate permissions.
*/
- aclcheck_result = pg_class_aclcheck(eventRelationOid, GetUserId(),
- ACL_RULE);
- if (aclcheck_result != ACLCHECK_OK)
- elog(ERROR, "%s: %s",
- RelationGetRelationName(event_relation),
- aclcheck_error_strings[aclcheck_result]);
+ aclresult = pg_class_aclcheck(eventRelationOid, GetUserId(), ACL_RULE);
+ if (aclresult != ACLCHECK_OK)
+ aclcheck_error(aclresult, RelationGetRelationName(event_relation));
/* do not allow the removal of a view's SELECT rule */
if (event_relation->rd_rel->relkind == RELKIND_VIEW &&