]> granicus.if.org Git - postgresql/commitdiff
Function prototypes.
authorVadim B. Mikheev <vadim4o@yahoo.com>
Mon, 1 Sep 1997 08:10:12 +0000 (08:10 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Mon, 1 Sep 1997 08:10:12 +0000 (08:10 +0000)
src/include/commands/trigger.h

index a9d1c736798902478df16d1f07c53e8706e044f9..e603a3f8dc4d6ad723d2b5d2d938784b029b6f56 100644 (file)
@@ -9,7 +9,45 @@
 #ifndef TRIGGER_H
 #define TRIGGER_H
 
+#include "access/tupdesc.h"
+#include "access/htup.h"
+#include "utils/rel.h"
+
+typedef uint32 TriggerAction;
+
+#define TRIGGER_ACTION_INSERT          0x00000000  
+#define TRIGGER_ACTION_DELETE          0x00000001   
+#define TRIGGER_ACTION_UPDATE          0x00000010
+#define TRIGGER_ACTION_OPMASK          0x00000011
+#define TRIGGER_ACTION_ROW             4
+
+#define TRIGGER_FIRED_BY_INSERT (action)       \
+       (((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
+                                               TRIGGER_ACTION_INSERT)
+
+#define TRIGGER_FIRED_BY_DELETE (action)       \
+       (((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
+                                               TRIGGER_ACTION_DELETE)
+
+#define TRIGGER_FIRED_BY_UPDATE (action)       \
+       (((TriggerAction) action & TRIGGER_ACTION_OPMASK) == \
+                                               TRIGGER_ACTION_UPDATE)
+
+#define TRIGGER_FIRED_FOR_ROW (action)         \
+       ((TriggerAction) action & TRIGGER_ACTION_ROW)
+
+#define TRIGGER_FIRED_FOR_STATEMENT (action)   \
+       (!TRIGGER_FIRED_FOR_ROW (action))
+
+
 extern void CreateTrigger (CreateTrigStmt *stmt);
 extern void DropTrigger (DropTrigStmt *stmt);
 
+extern HeapTuple ExecBRInsertTriggers (Relation rel, HeapTuple tuple);
+extern void ExecARInsertTriggers (Relation rel, HeapTuple tuple);
+extern bool ExecBRDeleteTriggers (Relation rel, ItemPointer tupleid);
+extern void ExecARDeleteTriggers (Relation rel, ItemPointer tupleid);
+extern HeapTuple ExecBRUpdateTriggers (Relation rel, ItemPointer tupleid, HeapTuple tuple);
+extern void ExecARUpdateTriggers (Relation rel, ItemPointer tupleid, HeapTuple tuple);
+
 #endif /* TRIGGER_H */