aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/trigger.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/commands/trigger.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/commands/trigger.c')
-rw-r--r--src/backend/commands/trigger.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index b826297a718..52e9761d759 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.115 2002/04/26 19:29:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.116 2002/04/27 03:45:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -58,6 +58,7 @@ CreateTrigger(CreateTrigStmt *stmt)
Datum values[Natts_pg_trigger];
char nulls[Natts_pg_trigger];
Relation rel;
+ AclResult aclresult;
Relation tgrel;
SysScanDesc tgscan;
ScanKeyData key;
@@ -84,10 +85,10 @@ CreateTrigger(CreateTrigStmt *stmt)
elog(ERROR, "CreateTrigger: can't create trigger for system relation %s",
stmt->relation->relname);
- if (pg_class_aclcheck(RelationGetRelid(rel), GetUserId(),
- stmt->isconstraint ? ACL_REFERENCES : ACL_TRIGGER)
- != ACLCHECK_OK)
- elog(ERROR, "permission denied");
+ aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(),
+ stmt->isconstraint ? ACL_REFERENCES : ACL_TRIGGER);
+ if (aclresult != ACLCHECK_OK)
+ aclcheck_error(aclresult, RelationGetRelationName(rel));
/*
* If trigger is an RI constraint, use trigger name as constraint name
@@ -337,8 +338,7 @@ DropTrigger(Oid relid, const char *trigname)
RelationGetRelationName(rel));
if (!pg_class_ownercheck(relid, GetUserId()))
- elog(ERROR, "%s: %s", RelationGetRelationName(rel),
- aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
+ aclcheck_error(ACLCHECK_NOT_OWNER, RelationGetRelationName(rel));
/*
* Search pg_trigger, delete target trigger, count remaining triggers