diff options
author | Robert Haas <rhaas@postgresql.org> | 2012-12-29 07:55:37 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2012-12-29 07:55:37 -0500 |
commit | 82b1b213cad3a69cf5f3dfaa81687c14366960fc (patch) | |
tree | e19129f124c02d7ef274393d584de97cc18a5f66 /src/backend/commands/event_trigger.c | |
parent | 5ab3af46ddd2f2c2b248f1ffdb688b394d4bb387 (diff) | |
download | postgresql-82b1b213cad3a69cf5f3dfaa81687c14366960fc.tar.gz postgresql-82b1b213cad3a69cf5f3dfaa81687c14366960fc.zip |
Adjust more backend functions to return OID rather than void.
This is again intended to support extensions to the event trigger
functionality. This may go a bit further than we need for that
purpose, but there's some value in being consistent, and the OID
may be useful for other purposes also.
Dimitri Fontaine
Diffstat (limited to 'src/backend/commands/event_trigger.c')
-rw-r--r-- | src/backend/commands/event_trigger.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index 722c3cf118c..e23cacd067f 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -94,15 +94,15 @@ static void AlterEventTriggerOwner_internal(Relation rel, static event_trigger_command_tag_check_result check_ddl_tag(const char *tag); static void error_duplicate_filter_variable(const char *defname); static Datum filter_list_to_array(List *filterlist); -static void insert_event_trigger_tuple(char *trigname, char *eventname, - Oid evtOwner, Oid funcoid, List *tags); +static Oid insert_event_trigger_tuple(char *trigname, char *eventname, + Oid evtOwner, Oid funcoid, List *tags); static void validate_ddl_tags(const char *filtervar, List *taglist); static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata); /* * Create an event trigger. */ -void +Oid CreateEventTrigger(CreateEventTrigStmt *stmt) { HeapTuple tuple; @@ -173,8 +173,8 @@ CreateEventTrigger(CreateEventTrigStmt *stmt) NameListToString(stmt->funcname)))); /* Insert catalog entries. */ - insert_event_trigger_tuple(stmt->trigname, stmt->eventname, - evtowner, funcoid, tags); + return insert_event_trigger_tuple(stmt->trigname, stmt->eventname, + evtowner, funcoid, tags); } /* @@ -260,7 +260,7 @@ error_duplicate_filter_variable(const char *defname) /* * Insert the new pg_event_trigger row and record dependencies. */ -static void +static Oid insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner, Oid funcoid, List *taglist) { @@ -312,6 +312,8 @@ insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner, /* Close pg_event_trigger. */ heap_close(tgrel, RowExclusiveLock); + + return trigoid; } /* @@ -376,11 +378,12 @@ RemoveEventTriggerById(Oid trigOid) /* * ALTER EVENT TRIGGER foo ENABLE|DISABLE|ENABLE ALWAYS|REPLICA */ -void +Oid AlterEventTrigger(AlterEventTrigStmt *stmt) { Relation tgrel; HeapTuple tup; + Oid trigoid; Form_pg_event_trigger evtForm; char tgenabled = stmt->tgenabled; @@ -393,7 +396,10 @@ AlterEventTrigger(AlterEventTrigStmt *stmt) (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("event trigger \"%s\" does not exist", stmt->trigname))); - if (!pg_event_trigger_ownercheck(HeapTupleGetOid(tup), GetUserId())) + + trigoid = HeapTupleGetOid(tup); + + if (!pg_event_trigger_ownercheck(trigoid, GetUserId())) aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_EVENT_TRIGGER, stmt->trigname); @@ -407,6 +413,8 @@ AlterEventTrigger(AlterEventTrigStmt *stmt) /* clean up */ heap_freetuple(tup); heap_close(tgrel, RowExclusiveLock); + + return trigoid; } |