Lines Matching defs:pTrigger
18427 Trigger *pTrigger; /* List of triggers on this object */
19699 ** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of
19702 ** values for both pTrigger and orconf.
19710 Trigger *pTrigger; /* Trigger this program was coded from */
19712 SubProgram *pProgram; /* Program implementing pTrigger/orconf */
19992 ** linked list is stored as the "pTrigger" member of the associated
33623 const Trigger *pTrigger
33634 if( pTrigger ) n++;
33661 if( pTrigger ){
33662 sqlite3TreeViewTrigger(pView, pTrigger, (--n)>0, 1);
33681 const Trigger *pTrigger
33701 if( pTrigger ) n++;
33731 if( pTrigger ){
33732 sqlite3TreeViewTrigger(pView, pTrigger, (--n)>0, 1);
33752 const Trigger *pTrigger
33773 if( pTrigger ) n++;
33809 if( pTrigger ){
33810 sqlite3TreeViewTrigger(pView, pTrigger, (--n)>0, 1);
33845 const Trigger *pTrigger,
33850 if( pTrigger==0 ) return;
33852 moreToFollow || (showFullList && pTrigger->pNext!=0));
33854 if( cnt++ && pTrigger->pNext==0 ){
33858 sqlite3TreeViewLine(pView, "TRIGGER %s", pTrigger->zName);
33860 sqlite3TreeViewTriggerStep(pView, pTrigger->step_list, 0, 1);
33862 }while( showFullList && (pTrigger = pTrigger->pNext)!=0 );
117560 static void renameWalkTrigger(Walker *pWalker, Trigger *pTrigger){
117564 sqlite3WalkExpr(pWalker, pTrigger->pWhen);
117567 for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){
117953 Trigger *pTrigger = sParse.pNewTrigger;
117956 && sCtx.pTab->pSchema==pTrigger->pTabSchema
117964 renameWalkTrigger(&sWalker, pTrigger);
117965 for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){
124741 Trigger *pTrigger;
124758 pTrigger = sqlite3TriggerList(pParse, pTab);
124759 while( pTrigger ){
124760 assert( pTrigger->pSchema==pTab->pSchema ||
124761 pTrigger->pSchema==db->aDb[1].pSchema );
124762 sqlite3DropTriggerPtr(pParse, pTrigger);
124763 pTrigger = pTrigger->pNext;
127735 SQLITE_PRIVATE int sqlite3IsReadOnly(Parse *pParse, Table *pTab, Trigger *pTrigger){
127742 && (pTrigger==0 || (pTrigger->bReturning && pTrigger->pNext==0))
127943 Trigger *pTrigger; /* List of table triggers, if required */
127967 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0);
127970 # define pTrigger 0
127973 bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0);
127983 pOrderBy, pLimit, pTrigger);
128003 if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){
128014 assert(!isView || pTrigger);
128265 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur,
128315 #ifdef pTrigger
128316 #undef pTrigger
128363 Trigger *pTrigger, /* List of triggers to (potentially) fire */
128396 if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){
128404 pParse, pTrigger, 0, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onconf
128424 sqlite3CodeRowTrigger(pParse, pTrigger,
128483 if( pTrigger ){
128484 sqlite3CodeRowTrigger(pParse, pTrigger,
132265 Trigger *p = pTop->pTriggerPrg->pTrigger;
132631 Trigger *pTrigger; /* Trigger definition to return */
132639 pTrigger = pFKey->apTrigger[iAction];
132641 if( action!=OE_None && !pTrigger ){
132761 pTrigger = (Trigger *)sqlite3DbMallocZero(db,
132766 if( pTrigger ){
132767 pStep = pTrigger->step_list = (TriggerStep *)&pTrigger[1];
132776 pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE);
132788 fkTriggerDelete(db, pTrigger);
132792 assert( pTrigger!=0 );
132807 pStep->pTrig = pTrigger;
132808 pTrigger->pSchema = pTab->pSchema;
132809 pTrigger->pTabSchema = pTab->pSchema;
132810 pFKey->apTrigger[iAction] = pTrigger;
132811 pTrigger->op = (pChanges ? TK_UPDATE : TK_DELETE);
132814 return pTrigger;
133812 Trigger *pTrigger; /* List of triggers on pTab, if required */
133854 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_INSERT, 0, &tmask);
133857 # define pTrigger 0
133865 assert( (pTrigger && tmask) || (pTrigger==0 && tmask==0) );
133871 onError, pUpsert, pTrigger);
133884 if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){
133893 sqlite3BeginWriteOperation(pParse, pSelect || pTrigger, iDb);
133907 && pTrigger==0
133910 assert( !pTrigger );
134043 if( pTrigger || readsTable(pParse, iDb, pTab) ){
134371 sqlite3CodeRowTrigger(pParse, pTrigger, TK_INSERT, 0, TRIGGER_BEFORE,
134480 if( pTrigger ){
134482 sqlite3CodeRowTrigger(pParse, pTrigger, TK_INSERT, 0, TRIGGER_AFTER,
134543 #ifdef pTrigger
134544 #undef pTrigger
134805 Trigger *pTrigger; /* List of DELETE triggers on the table pTab */
135079 ** (2) Initialize pTrigger to the list of all DELETE triggers on pTab.
135090 pTrigger = 0;
135094 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0);
135095 regTrigCnt = pTrigger!=0 || sqlite3FkRequired(pParse, pTab, 0, 0);
135097 pTrigger = 0;
135212 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur,
135483 if( pTrigger && isUpdate ){
135486 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur,
135489 if( pTrigger && isUpdate ){
151753 ** are already attached to pTab->pTrigger. But there might be additional
151755 ** TEMP triggers on pTab to the beginning of the pTab->pTrigger list
151760 ** pTab as well as the triggers lised in pTab->pTrigger.
151770 pList = pTab->pTrigger;
151827 Trigger *pTrigger = 0; /* The new trigger */
151973 pTrigger = (Trigger*)sqlite3DbMallocZero(db, sizeof(Trigger));
151974 if( pTrigger==0 ) goto trigger_cleanup;
151975 pTrigger->zName = zName;
151977 pTrigger->table = sqlite3DbStrDup(db, pTableName->a[0].zName);
151978 pTrigger->pSchema = db->aDb[iDb].pSchema;
151979 pTrigger->pTabSchema = pTab->pSchema;
151980 pTrigger->op = (u8)op;
151981 pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER;
151983 sqlite3RenameTokenRemap(pParse, pTrigger->table, pTableName->a[0].zName);
151984 pTrigger->pWhen = pWhen;
151987 pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE);
151989 pTrigger->pColumns = pColumns;
151992 pParse->pNewTrigger = pTrigger;
152000 sqlite3DeleteTrigger(db, pTrigger);
152002 assert( pParse->pNewTrigger==pTrigger );
152117 pLink->pNext = pTab->pTrigger;
152118 pTab->pTrigger = pLink;
152315 SQLITE_PRIVATE void sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger){
152316 if( pTrigger==0 || pTrigger->bReturning ) return;
152317 sqlite3DeleteTriggerStep(db, pTrigger->step_list);
152318 sqlite3DbFree(db, pTrigger->zName);
152319 sqlite3DbFree(db, pTrigger->table);
152320 sqlite3ExprDelete(db, pTrigger->pWhen);
152321 sqlite3IdListDelete(db, pTrigger->pColumns);
152322 sqlite3DbFree(db, pTrigger);
152334 Trigger *pTrigger = 0;
152353 pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName);
152354 if( pTrigger ) break;
152356 if( !pTrigger ){
152365 sqlite3DropTriggerPtr(pParse, pTrigger);
152375 static Table *tableOfTrigger(Trigger *pTrigger){
152376 return sqlite3HashFind(&pTrigger->pTabSchema->tblHash, pTrigger->table);
152383 SQLITE_PRIVATE void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger){
152389 iDb = sqlite3SchemaToIndex(pParse->db, pTrigger->pSchema);
152391 pTable = tableOfTrigger(pTrigger);
152392 assert( (pTable && pTable->pSchema==pTrigger->pSchema) || iDb==1 );
152399 if( sqlite3AuthCheck(pParse, code, pTrigger->zName, pTable->zName, zDb) ||
152411 db->aDb[iDb].zDbSName, pTrigger->zName
152414 sqlite3VdbeAddOp4(v, OP_DropTrigger, iDb, 0, 0, pTrigger->zName, 0);
152422 Trigger *pTrigger;
152427 pTrigger = sqlite3HashInsert(pHash, zName, 0);
152428 if( ALWAYS(pTrigger) ){
152429 if( pTrigger->pSchema==pTrigger->pTabSchema ){
152430 Table *pTab = tableOfTrigger(pTrigger);
152433 for(pp=&pTab->pTrigger; *pp; pp=&((*pp)->pNext)){
152434 if( *pp==pTrigger ){
152441 sqlite3DeleteTrigger(db, pTrigger);
152496 && pTab->pTrigger!=0
152501 if( pList==pTab->pTrigger ){
152505 while( ALWAYS(p->pNext) && p->pNext!=pTab->pTrigger ) p = p->pNext;
152550 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db))
152739 Trigger *pTrigger, /* The trigger step that defines the RETURNING */
152758 if( pTrigger != &(pReturning->retTrig) ){
152787 pParse->eTriggerOp = pTrigger->op;
152940 ** implementing trigger pTrigger with ON CONFLICT policy orconf.
152944 Trigger *pTrigger, /* Trigger to code */
152945 Table *pTab, /* The table pTrigger is attached to */
152958 assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) );
152971 pPrg->pTrigger = pTrigger;
152983 sSubParse.zAuthContext = pTrigger->zName;
152984 sSubParse.eTriggerOp = pTrigger->op;
152991 pTrigger->zName, onErrorText(orconf),
152992 (pTrigger->tr_tm==TRIGGER_BEFORE ? "BEFORE" : "AFTER"),
152993 (pTrigger->op==TK_UPDATE ? "UPDATE" : ""),
152994 (pTrigger->op==TK_INSERT ? "INSERT" : ""),
152995 (pTrigger->op==TK_DELETE ? "DELETE" : ""),
152999 if( pTrigger->zName ){
153001 sqlite3MPrintf(db, "-- TRIGGER %s", pTrigger->zName), P4_DYNAMIC
153009 if( pTrigger->pWhen ){
153010 pWhen = sqlite3ExprDup(db, pTrigger->pWhen, 0);
153021 codeTriggerProgram(&sSubParse, pTrigger->step_list, orconf);
153028 VdbeComment((v, "End: %s.%s", pTrigger->zName, onErrorText(orconf)));
153037 pProgram->token = (void *)pTrigger;
153052 ** trigger pTrigger with default ON CONFLICT algorithm orconf. If no such
153058 Trigger *pTrigger, /* Trigger to code */
153059 Table *pTab, /* The table trigger pTrigger is attached to */
153065 assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) );
153069 ** a matching TriggerPrg.pTrigger field will be present somewhere
153072 pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf);
153078 pPrg = codeRowTrigger(pParse, pTrigger, pTab, orconf);
153165 Trigger *pTrigger, /* List of triggers on table pTab */
153174 Trigger *p; /* Used to iterate through pTrigger list */
153180 for(p=pTrigger; p; p=p->pNext){
153235 Trigger *pTrigger, /* List of triggers on table pTab */
153250 for(p=pTrigger; p; p=p->pNext){
153602 Trigger *pTrigger; /* List of triggers on pTab, if required */
153643 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_UPDATE, pChanges, &tmask);
153645 assert( pTrigger || tmask==0 );
153647 # define pTrigger 0
153660 onError, pOrderBy, pLimit, pUpsert, pTrigger);
153684 if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){
153877 sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb);
153889 if( chngPk || pTrigger || hasFK ){
153893 if( chngKey || pTrigger || hasFK ){
154013 && !pTrigger
154165 assert( chngKey || pTrigger || hasFK || regOldRowid==regNewRowid );
154178 if( chngPk || hasFK || pTrigger ){
154181 pTrigger, pChanges, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onError
154218 pParse, pTrigger, pChanges, 1, TRIGGER_BEFORE, pTab, onError
154263 sqlite3CodeRowTrigger(pParse, pTrigger, TK_UPDATE, pChanges,
154396 if( pTrigger ){
154397 sqlite3CodeRowTrigger(pParse, pTrigger, TK_UPDATE, pChanges,
154449 #ifdef pTrigger
154450 #undef pTrigger