diff options
| author | Robert Haas | 2012-07-20 15:38:47 +0000 |
|---|---|---|
| committer | Robert Haas | 2012-07-20 15:39:01 +0000 |
| commit | 3a0e4d36ebd7f477822d5bae41ba121a40d22ccc (patch) | |
| tree | 323cd89ebb88c51b796b86f17f6efa1db76a761e /src/include/utils | |
| parent | be86e3dd5b42c33387ae976c014e6276c9439f7f (diff) | |
Make new event trigger facility actually do something.
Commit 3855968f328918b6cd1401dd11d109d471a54d40 added syntax, pg_dump,
psql support, and documentation, but the triggers didn't actually fire.
With this commit, they now do. This is still a pretty basic facility
overall because event triggers do not get a whole lot of information
about what the user is trying to do unless you write them in C; and
there's still no option to fire them anywhere except at the very
beginning of the execution sequence, but it's better than nothing,
and a good building block for future work.
Along the way, add a regression test for ALTER LARGE OBJECT, since
testing of event triggers reveals that we haven't got one.
Dimitri Fontaine and Robert Haas
Diffstat (limited to 'src/include/utils')
| -rw-r--r-- | src/include/utils/evtcache.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/include/utils/evtcache.h b/src/include/utils/evtcache.h new file mode 100644 index 00000000000..004b92ae153 --- /dev/null +++ b/src/include/utils/evtcache.h @@ -0,0 +1,34 @@ +/*------------------------------------------------------------------------- + * + * evtcache.c + * Special-purpose cache for event trigger data. + * + * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/backend/utils/cache/evtcache.c + * + *------------------------------------------------------------------------- + */ +#ifndef EVTCACHE_H +#define EVTCACHE_H + +#include "nodes/pg_list.h" + +typedef enum +{ + EVT_DDLCommandStart +} EventTriggerEvent; + +typedef struct +{ + Oid fnoid; /* function to be called */ + char enabled; /* as SESSION_REPLICATION_ROLE_* */ + int ntags; /* number of command tags */ + char **tag; /* command tags in SORTED order */ +} EventTriggerCacheItem; + +extern List *EventCacheLookup(EventTriggerEvent event); + +#endif /* EVTCACHE_H */ |
