Lines Matching refs:pTrigger

58   pList = pTab->pTrigger;  in sqlite3TriggerList()
115 Trigger *pTrigger = 0; /* The new trigger */ in sqlite3BeginTrigger() local
256 pTrigger = (Trigger*)sqlite3DbMallocZero(db, sizeof(Trigger)); in sqlite3BeginTrigger()
257 if( pTrigger==0 ) goto trigger_cleanup; in sqlite3BeginTrigger()
258 pTrigger->zName = zName; in sqlite3BeginTrigger()
260 pTrigger->table = sqlite3DbStrDup(db, pTableName->a[0].zName); in sqlite3BeginTrigger()
261 pTrigger->pSchema = db->aDb[iDb].pSchema; in sqlite3BeginTrigger()
262 pTrigger->pTabSchema = pTab->pSchema; in sqlite3BeginTrigger()
263 pTrigger->op = (u8)op; in sqlite3BeginTrigger()
264 pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER; in sqlite3BeginTrigger()
266 sqlite3RenameTokenRemap(pParse, pTrigger->table, pTableName->a[0].zName); in sqlite3BeginTrigger()
267 pTrigger->pWhen = pWhen; in sqlite3BeginTrigger()
270 pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE); in sqlite3BeginTrigger()
272 pTrigger->pColumns = pColumns; in sqlite3BeginTrigger()
275 pParse->pNewTrigger = pTrigger; in sqlite3BeginTrigger()
283 sqlite3DeleteTrigger(db, pTrigger); in sqlite3BeginTrigger()
285 assert( pParse->pNewTrigger==pTrigger ); in sqlite3BeginTrigger()
400 pLink->pNext = pTab->pTrigger; in sqlite3FinishTrigger()
401 pTab->pTrigger = pLink; in sqlite3FinishTrigger()
598 void sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger){ in sqlite3DeleteTrigger() argument
599 if( pTrigger==0 || pTrigger->bReturning ) return; in sqlite3DeleteTrigger()
600 sqlite3DeleteTriggerStep(db, pTrigger->step_list); in sqlite3DeleteTrigger()
601 sqlite3DbFree(db, pTrigger->zName); in sqlite3DeleteTrigger()
602 sqlite3DbFree(db, pTrigger->table); in sqlite3DeleteTrigger()
603 sqlite3ExprDelete(db, pTrigger->pWhen); in sqlite3DeleteTrigger()
604 sqlite3IdListDelete(db, pTrigger->pColumns); in sqlite3DeleteTrigger()
605 sqlite3DbFree(db, pTrigger); in sqlite3DeleteTrigger()
617 Trigger *pTrigger = 0; in sqlite3DropTrigger() local
636 pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName); in sqlite3DropTrigger()
637 if( pTrigger ) break; in sqlite3DropTrigger()
639 if( !pTrigger ){ in sqlite3DropTrigger()
648 sqlite3DropTriggerPtr(pParse, pTrigger); in sqlite3DropTrigger()
658 static Table *tableOfTrigger(Trigger *pTrigger){ in tableOfTrigger() argument
659 return sqlite3HashFind(&pTrigger->pTabSchema->tblHash, pTrigger->table); in tableOfTrigger()
666 void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger){ in sqlite3DropTriggerPtr() argument
672 iDb = sqlite3SchemaToIndex(pParse->db, pTrigger->pSchema); in sqlite3DropTriggerPtr()
674 pTable = tableOfTrigger(pTrigger); in sqlite3DropTriggerPtr()
675 assert( (pTable && pTable->pSchema==pTrigger->pSchema) || iDb==1 ); in sqlite3DropTriggerPtr()
682 if( sqlite3AuthCheck(pParse, code, pTrigger->zName, pTable->zName, zDb) || in sqlite3DropTriggerPtr()
694 db->aDb[iDb].zDbSName, pTrigger->zName in sqlite3DropTriggerPtr()
697 sqlite3VdbeAddOp4(v, OP_DropTrigger, iDb, 0, 0, pTrigger->zName, 0); in sqlite3DropTriggerPtr()
705 Trigger *pTrigger; in sqlite3UnlinkAndDeleteTrigger() local
710 pTrigger = sqlite3HashInsert(pHash, zName, 0); in sqlite3UnlinkAndDeleteTrigger()
711 if( ALWAYS(pTrigger) ){ in sqlite3UnlinkAndDeleteTrigger()
712 if( pTrigger->pSchema==pTrigger->pTabSchema ){ in sqlite3UnlinkAndDeleteTrigger()
713 Table *pTab = tableOfTrigger(pTrigger); in sqlite3UnlinkAndDeleteTrigger()
716 for(pp=&pTab->pTrigger; *pp; pp=&((*pp)->pNext)){ in sqlite3UnlinkAndDeleteTrigger()
717 if( *pp==pTrigger ){ in sqlite3UnlinkAndDeleteTrigger()
724 sqlite3DeleteTrigger(db, pTrigger); in sqlite3UnlinkAndDeleteTrigger()
779 && pTab->pTrigger!=0 in triggersReallyExist()
784 if( pList==pTab->pTrigger ){ in triggersReallyExist()
788 while( ALWAYS(p->pNext) && p->pNext!=pTab->pTrigger ) p = p->pNext; in triggersReallyExist()
833 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db)) in sqlite3TriggersExist()
956 Trigger *pTrigger, /* The trigger step that defines the RETURNING */ in codeReturningTrigger() argument
971 assert( pTrigger == &(pReturning->retTrig) ); in codeReturningTrigger()
996 pParse->eTriggerOp = pTrigger->op; in codeReturningTrigger()
1152 Trigger *pTrigger, /* Trigger to code */ in codeRowTrigger() argument
1166 assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) ); in codeRowTrigger()
1179 pPrg->pTrigger = pTrigger; in codeRowTrigger()
1191 sSubParse.zAuthContext = pTrigger->zName; in codeRowTrigger()
1192 sSubParse.eTriggerOp = pTrigger->op; in codeRowTrigger()
1199 pTrigger->zName, onErrorText(orconf), in codeRowTrigger()
1200 (pTrigger->tr_tm==TRIGGER_BEFORE ? "BEFORE" : "AFTER"), in codeRowTrigger()
1201 (pTrigger->op==TK_UPDATE ? "UPDATE" : ""), in codeRowTrigger()
1202 (pTrigger->op==TK_INSERT ? "INSERT" : ""), in codeRowTrigger()
1203 (pTrigger->op==TK_DELETE ? "DELETE" : ""), in codeRowTrigger()
1207 if( pTrigger->zName ){ in codeRowTrigger()
1209 sqlite3MPrintf(db, "-- TRIGGER %s", pTrigger->zName), P4_DYNAMIC in codeRowTrigger()
1217 if( pTrigger->pWhen ){ in codeRowTrigger()
1218 pWhen = sqlite3ExprDup(db, pTrigger->pWhen, 0); in codeRowTrigger()
1229 codeTriggerProgram(&sSubParse, pTrigger->step_list, orconf); in codeRowTrigger()
1236 VdbeComment((v, "End: %s.%s", pTrigger->zName, onErrorText(orconf))); in codeRowTrigger()
1245 pProgram->token = (void *)pTrigger; in codeRowTrigger()
1266 Trigger *pTrigger, /* Trigger to code */ in getRowTrigger() argument
1273 assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) ); in getRowTrigger()
1280 pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf); in getRowTrigger()
1286 pPrg = codeRowTrigger(pParse, pTrigger, pTab, orconf); in getRowTrigger()
1373 Trigger *pTrigger, /* List of triggers on table pTab */ in sqlite3CodeRowTrigger() argument
1388 for(p=pTrigger; p; p=p->pNext){ in sqlite3CodeRowTrigger()
1443 Trigger *pTrigger, /* List of triggers on table pTab */ in sqlite3TriggerColmask() argument
1455 for(p=pTrigger; p; p=p->pNext){ in sqlite3TriggerColmask()