Simplify the trigger logic for DELETE, INSERT, and UPDATE. (CVS 2157)
FossilOrigin-Name: 8e164ab27771aced9a592ea4b7c27e9f184181a5
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 43f9afa..c67d56d 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -11,7 +11,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
-** @(#) $Id: sqliteInt.h,v 1.344 2004/11/23 01:47:30 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.345 2004/12/07 14:06:13 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@@ -1100,7 +1100,7 @@
u8 iDb; /* Database containing this trigger */
u8 iTabDb; /* Database containing Trigger.table */
u8 op; /* One of TK_DELETE, TK_UPDATE, TK_INSERT */
- u8 tr_tm; /* One of TK_BEFORE, TK_AFTER */
+ u8 tr_tm; /* One of TRIGGER_BEFORE, TRIGGER_AFTER */
Expr *pWhen; /* The WHEN clause of the expresion (may be NULL) */
IdList *pColumns; /* If this is an UPDATE OF <column-list> trigger,
the <column-list> is stored here */
@@ -1112,6 +1112,16 @@
};
/*
+** A trigger is either a BEFORE or an AFTER trigger. The following constants
+** determine which.
+**
+** If there are multiple triggers, you might of some BEFORE and some AFTER.
+** In that cases, the constants below can be ORed together.
+*/
+#define TRIGGER_BEFORE 1
+#define TRIGGER_AFTER 2
+
+/*
* An instance of struct TriggerStep is used to store a single SQL statement
* that is a part of a trigger-program.
*
@@ -1399,7 +1409,7 @@
void sqlite3FinishTrigger(Parse*, TriggerStep*, Token*);
void sqlite3DropTrigger(Parse*, SrcList*);
void sqlite3DropTriggerPtr(Parse*, Trigger*, int);
- int sqlite3TriggersExist(Parse* , Trigger* , int , int , int, ExprList*);
+ int sqlite3TriggersExist(Parse*, Table*, int, ExprList*);
int sqlite3CodeRowTrigger(Parse*, int, ExprList*, int, Table *, int, int,
int, int);
void sqliteViewTriggers(Parse*, Table*, Expr*, int, ExprList*);