diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-28 00:21:56 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-28 00:21:56 +0000 |
commit | 7692d8d5b72f510bd84f708d0a8e53c548f71adc (patch) | |
tree | 2db349ab412c7353734bfd232fbba8c5261913a0 /src/include/commands/trigger.h | |
parent | 107b3d0c23b52cf20b705d00200211d8cc341f52 (diff) | |
download | postgresql-7692d8d5b72f510bd84f708d0a8e53c548f71adc.tar.gz postgresql-7692d8d5b72f510bd84f708d0a8e53c548f71adc.zip |
Support statement-level ON TRUNCATE triggers. Simon Riggs
Diffstat (limited to 'src/include/commands/trigger.h')
-rw-r--r-- | src/include/commands/trigger.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h index 5e0dda4744d..174b6507d1a 100644 --- a/src/include/commands/trigger.h +++ b/src/include/commands/trigger.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.66 2008/01/02 23:34:42 tgl Exp $ + * $PostgreSQL: pgsql/src/include/commands/trigger.h,v 1.67 2008/03/28 00:21:56 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -38,11 +38,18 @@ typedef struct TriggerData Buffer tg_newtuplebuf; } TriggerData; -/* TriggerEvent bit flags */ - +/* + * TriggerEvent bit flags + * + * Note that we assume different event types (INSERT/DELETE/UPDATE/TRUNCATE) + * can't be OR'd together in a single TriggerEvent. This is unlike the + * situation for pg_trigger rows, so pg_trigger.tgtype uses a different + * representation! + */ #define TRIGGER_EVENT_INSERT 0x00000000 #define TRIGGER_EVENT_DELETE 0x00000001 #define TRIGGER_EVENT_UPDATE 0x00000002 +#define TRIGGER_EVENT_TRUNCATE 0x00000003 #define TRIGGER_EVENT_OPMASK 0x00000003 #define TRIGGER_EVENT_ROW 0x00000004 #define TRIGGER_EVENT_BEFORE 0x00000008 @@ -66,6 +73,10 @@ typedef struct TriggerData (((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \ TRIGGER_EVENT_UPDATE) +#define TRIGGER_FIRED_BY_TRUNCATE(event) \ + (((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \ + TRIGGER_EVENT_TRUNCATE) + #define TRIGGER_FIRED_FOR_ROW(event) \ ((TriggerEvent) (event) & TRIGGER_EVENT_ROW) @@ -140,6 +151,10 @@ extern void ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo, ItemPointer tupleid, HeapTuple newtuple); +extern void ExecBSTruncateTriggers(EState *estate, + ResultRelInfo *relinfo); +extern void ExecASTruncateTriggers(EState *estate, + ResultRelInfo *relinfo); extern void AfterTriggerBeginXact(void); extern void AfterTriggerBeginQuery(void); |