diff options
author | drh <drh@noemail.net> | 2003-04-21 18:48:45 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2003-04-21 18:48:45 +0000 |
commit | f0f258b11b21fe2e9cfa0ad8ab20879b4bb30524 (patch) | |
tree | 9cb896bd226bfe92963d3d44a1335e55ec3c481c /src/sqliteInt.h | |
parent | 881b890af4ee440536eea13e8f5b6775dc160c00 (diff) | |
download | sqlite-f0f258b11b21fe2e9cfa0ad8ab20879b4bb30524.tar.gz sqlite-f0f258b11b21fe2e9cfa0ad8ab20879b4bb30524.zip |
Add support for TEMPORARY triggers. Such triggers can write temporary or
permanent tables. (CVS 926)
FossilOrigin-Name: 58ddd587b0f5d565ae3b0ba3a1fa5c20d459f3fc
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 5d128c7d0..135523ada 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -11,7 +11,7 @@ ************************************************************************* ** Internal interface definitions for SQLite. ** -** @(#) $Id: sqliteInt.h,v 1.176 2003/04/20 00:00:24 drh Exp $ +** @(#) $Id: sqliteInt.h,v 1.177 2003/04/21 18:48:47 drh Exp $ */ #include "config.h" #include "sqlite.h" @@ -832,7 +832,8 @@ struct Parse { int nSet; /* Number of sets used so far */ int nAgg; /* Number of aggregate expressions */ AggExpr *aAgg; /* An array of aggregate expressions */ - TriggerStack *trigStack; + Trigger *pNewTrigger; /* Trigger under construct by a CREATE TRIGGER */ + TriggerStack *trigStack; /* Trigger actions being coded */ }; /* @@ -853,9 +854,9 @@ struct Parse { struct Trigger { char *name; /* The name of the trigger */ char *table; /* The table or view to which the trigger applies */ - int iDb; /* Database containing this trigger */ - int op; /* One of TK_DELETE, TK_UPDATE, TK_INSERT */ - int tr_tm; /* One of TK_BEFORE, TK_AFTER */ + u8 iDb; /* Database containing this trigger */ + u8 op; /* One of TK_DELETE, TK_UPDATE, TK_INSERT */ + u8 tr_tm; /* One of TK_BEFORE, TK_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 */ @@ -1094,13 +1095,14 @@ int sqliteSafetyOn(sqlite*); int sqliteSafetyOff(sqlite*); int sqliteSafetyCheck(sqlite*); void sqliteChangeCookie(sqlite*, Vdbe*); -void sqliteCreateTrigger(Parse*, Token*, int, int, IdList*, SrcList*, - int, Expr*, TriggerStep*, Token*); +void sqliteBeginTrigger(Parse*, Token*,int,int,IdList*,SrcList*,int,Expr*,int); +void sqliteFinishTrigger(Parse*, TriggerStep*, Token*); void sqliteDropTrigger(Parse*, SrcList*, int); int sqliteTriggersExist(Parse* , Trigger* , int , int , int, ExprList*); int sqliteCodeRowTrigger(Parse*, int, ExprList*, int, Table *, int, int, int, int); void sqliteViewTriggers(Parse*, Table*, Expr*, int, ExprList*); +void sqliteDeleteTriggerStep(TriggerStep*); TriggerStep *sqliteTriggerSelectStep(Select*); TriggerStep *sqliteTriggerInsertStep(Token*, IdList*, ExprList*, Select*, int); TriggerStep *sqliteTriggerUpdateStep(Token*, ExprList*, Expr*, int); |