TriggerStep
TriggerStep *pStep /* The trigger step be fixed to one database */
%type trigger_cmd_list {TriggerStep *}
%type trigger_cmd {TriggerStep *}
TriggerStep * pNext; /* Next in the link-list */
void sqliteFinishTrigger(Parse*, TriggerStep*, Token*);
void sqliteDeleteTriggerStep(TriggerStep*);
TriggerStep *sqliteTriggerSelectStep(Select*);
TriggerStep *sqliteTriggerInsertStep(Token*, IdList*, ExprList*, Select*, int);
TriggerStep *sqliteTriggerUpdateStep(Token*, ExprList*, Expr*, int);
TriggerStep *sqliteTriggerDeleteStep(Token*, Expr*);
int sqliteFixTriggerStep(DbFixer*, TriggerStep*);
typedef struct TriggerStep TriggerStep;
TriggerStep *step_list; /* Link list of trigger program steps */
TriggerStep *pStepList, /* The triggered program */
void sqliteDeleteTriggerStep(TriggerStep *pTriggerStep){
TriggerStep * pTmp = pTriggerStep;
static void sqlitePersistTriggerStep(TriggerStep *p){
TriggerStep *sqliteTriggerSelectStep(Select *pSelect){
TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep));
TriggerStep *sqliteTriggerInsertStep(
TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep));
TriggerStep *sqliteTriggerUpdateStep(
TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep));
TriggerStep *sqliteTriggerDeleteStep(Token *pTableName, Expr *pWhere){
TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep));
TriggerStep *pStep /* The trigger containing the target token */
TriggerStep *pStepList, /* List of statements inside the trigger body */
TriggerStep * pTriggerStep = pStepList;