Lines Matching refs:pParse
50 Trigger *sqlite3TriggerList(Parse *pParse, Table *pTab){ in sqlite3TriggerList() argument
55 assert( pParse->disableTriggers==0 ); in sqlite3TriggerList()
56 pTmpSchema = pParse->db->aDb[1].pSchema; in sqlite3TriggerList()
70 assert( pParse->db->pVtabCtx==0 ); in sqlite3TriggerList()
72 assert( pParse->bReturning ); in sqlite3TriggerList()
73 assert( &(pParse->u1.pReturning->retTrig) == pTrig ); in sqlite3TriggerList()
104 Parse *pParse, /* The parse context of the CREATE TRIGGER statement */ in sqlite3BeginTrigger() argument
118 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3BeginTrigger()
130 sqlite3ErrorMsg(pParse, "temporary trigger may not have qualified name"); in sqlite3BeginTrigger()
137 iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName); in sqlite3BeginTrigger()
164 pTab = sqlite3SrcListLookup(pParse, pTableName); in sqlite3BeginTrigger()
173 sqlite3FixInit(&sFix, pParse, iDb, "trigger", pName); in sqlite3BeginTrigger()
177 pTab = sqlite3SrcListLookup(pParse, pTableName); in sqlite3BeginTrigger()
183 sqlite3ErrorMsg(pParse, "cannot create triggers on virtual tables"); in sqlite3BeginTrigger()
194 if( sqlite3CheckObjectName(pParse, zName, "trigger", pTab->zName) ){ in sqlite3BeginTrigger()
201 sqlite3ErrorMsg(pParse, "trigger %T already exists", pName); in sqlite3BeginTrigger()
204 sqlite3CodeVerifySchema(pParse, iDb); in sqlite3BeginTrigger()
212 sqlite3ErrorMsg(pParse, "cannot create trigger on system table"); in sqlite3BeginTrigger()
220 sqlite3ErrorMsg(pParse, "cannot create %s trigger on view: %S", in sqlite3BeginTrigger()
225 sqlite3ErrorMsg(pParse, "cannot create INSTEAD OF" in sqlite3BeginTrigger()
237 if( sqlite3AuthCheck(pParse, code, zName, pTab->zName, zDbTrig) ){ in sqlite3BeginTrigger()
240 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){ in sqlite3BeginTrigger()
266 sqlite3RenameTokenRemap(pParse, pTrigger->table, pTableName->a[0].zName); in sqlite3BeginTrigger()
274 assert( pParse->pNewTrigger==0 ); in sqlite3BeginTrigger()
275 pParse->pNewTrigger = pTrigger; in sqlite3BeginTrigger()
282 if( !pParse->pNewTrigger ){ in sqlite3BeginTrigger()
285 assert( pParse->pNewTrigger==pTrigger ); in sqlite3BeginTrigger()
311 Parse *pParse, /* Parser context */ in sqlite3FinishTrigger() argument
315 Trigger *pTrig = pParse->pNewTrigger; /* Trigger being finished */ in sqlite3FinishTrigger()
317 sqlite3 *db = pParse->db; /* The database */ in sqlite3FinishTrigger()
322 pParse->pNewTrigger = 0; in sqlite3FinishTrigger()
323 if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup; in sqlite3FinishTrigger()
325 iDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema); in sqlite3FinishTrigger()
332 sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken); in sqlite3FinishTrigger()
342 pParse->pNewTrigger = pTrig; in sqlite3FinishTrigger()
363 sqlite3ErrorMsg(pParse, in sqlite3FinishTrigger()
372 v = sqlite3GetVdbe(pParse); in sqlite3FinishTrigger()
374 sqlite3BeginWriteOperation(pParse, 0, iDb); in sqlite3FinishTrigger()
377 sqlite3NestedParse(pParse, in sqlite3FinishTrigger()
383 sqlite3ChangeCookie(pParse, iDb); in sqlite3FinishTrigger()
407 assert( IN_RENAME_OBJECT || !pParse->pNewTrigger ); in sqlite3FinishTrigger()
454 Parse *pParse, /* Parser context */ in triggerStepAllocate() argument
460 sqlite3 *db = pParse->db; in triggerStepAllocate()
463 if( pParse->nErr ) return 0; in triggerStepAllocate()
473 sqlite3RenameTokenMap(pParse, pTriggerStep->zTarget, pName); in triggerStepAllocate()
487 Parse *pParse, /* Parser */ in sqlite3TriggerInsertStep() argument
496 sqlite3 *db = pParse->db; in sqlite3TriggerInsertStep()
501 pTriggerStep = triggerStepAllocate(pParse, TK_INSERT, pTableName,zStart,zEnd); in sqlite3TriggerInsertStep()
513 sqlite3HasExplicitNulls(pParse, pUpsert->pUpsertTarget); in sqlite3TriggerInsertStep()
532 Parse *pParse, /* Parser */ in sqlite3TriggerUpdateStep() argument
541 sqlite3 *db = pParse->db; in sqlite3TriggerUpdateStep()
544 pTriggerStep = triggerStepAllocate(pParse, TK_UPDATE, pTableName,zStart,zEnd); in sqlite3TriggerUpdateStep()
572 Parse *pParse, /* Parser */ in sqlite3TriggerDeleteStep() argument
578 sqlite3 *db = pParse->db; in sqlite3TriggerDeleteStep()
581 pTriggerStep = triggerStepAllocate(pParse, TK_DELETE, pTableName,zStart,zEnd); in sqlite3TriggerDeleteStep()
616 void sqlite3DropTrigger(Parse *pParse, SrcList *pName, int noErr){ in sqlite3DropTrigger() argument
621 sqlite3 *db = pParse->db; in sqlite3DropTrigger()
624 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ in sqlite3DropTrigger()
641 sqlite3ErrorMsg(pParse, "no such trigger: %S", pName->a); in sqlite3DropTrigger()
643 sqlite3CodeVerifyNamedSchema(pParse, zDb); in sqlite3DropTrigger()
645 pParse->checkSchema = 1; in sqlite3DropTrigger()
648 sqlite3DropTriggerPtr(pParse, pTrigger); in sqlite3DropTrigger()
666 void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger){ in sqlite3DropTriggerPtr() argument
669 sqlite3 *db = pParse->db; in sqlite3DropTriggerPtr()
672 iDb = sqlite3SchemaToIndex(pParse->db, pTrigger->pSchema); in sqlite3DropTriggerPtr()
682 if( sqlite3AuthCheck(pParse, code, pTrigger->zName, pTable->zName, zDb) || in sqlite3DropTriggerPtr()
683 sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ in sqlite3DropTriggerPtr()
691 if( (v = sqlite3GetVdbe(pParse))!=0 ){ in sqlite3DropTriggerPtr()
692 sqlite3NestedParse(pParse, in sqlite3DropTriggerPtr()
696 sqlite3ChangeCookie(pParse, iDb); in sqlite3DropTriggerPtr()
763 Parse *pParse, /* Parse context */ in triggersReallyExist() argument
773 pList = sqlite3TriggerList(pParse, pTab); in triggersReallyExist()
778 if( (pParse->db->flags & SQLITE_EnableTrigger)==0 in triggersReallyExist()
798 assert( sqlite3IsToplevel(pParse) ); in triggersReallyExist()
802 sqlite3ErrorMsg(pParse, in triggersReallyExist()
812 && sqlite3IsToplevel(pParse) ){ in triggersReallyExist()
826 Parse *pParse, /* Parse context */ in sqlite3TriggersExist() argument
833 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db)) in sqlite3TriggersExist()
834 || pParse->disableTriggers in sqlite3TriggersExist()
839 return triggersReallyExist(pParse,pTab,op,pChanges,pMask); in sqlite3TriggersExist()
853 Parse *pParse, /* The parsing context */ in sqlite3TriggerStepSrc() argument
856 sqlite3 *db = pParse->db; in sqlite3TriggerStepSrc()
859 pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); in sqlite3TriggerStepSrc()
873 pSubquery = sqlite3SelectNew(pParse,0,pDup,0,0,0,0,SF_NestedFrom,0); in sqlite3TriggerStepSrc()
876 pDup = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0); in sqlite3TriggerStepSrc()
878 pSrc = sqlite3SrcListAppendList(pParse, pSrc, pDup); in sqlite3TriggerStepSrc()
892 Parse *pParse, /* Parsing context */ in isAsteriskTerm() argument
901 sqlite3ErrorMsg(pParse, "RETURNING may not use \"TABLE.*\" wildcards"); in isAsteriskTerm()
912 Parse *pParse, /* Parsing context */ in sqlite3ExpandReturning() argument
917 sqlite3 *db = pParse->db; in sqlite3ExpandReturning()
923 if( isAsteriskTerm(pParse, pOldExpr) ){ in sqlite3ExpandReturning()
929 pNew = sqlite3ExprListAppend(pParse, pNew, pNewExpr); in sqlite3ExpandReturning()
938 pNew = sqlite3ExprListAppend(pParse, pNew, pNewExpr); in sqlite3ExpandReturning()
955 Parse *pParse, /* Parse context */ in codeReturningTrigger() argument
960 Vdbe *v = pParse->pVdbe; in codeReturningTrigger()
961 sqlite3 *db = pParse->db; in codeReturningTrigger()
968 assert( pParse->bReturning ); in codeReturningTrigger()
969 assert( db->pParse==pParse ); in codeReturningTrigger()
970 pReturning = pParse->u1.pReturning; in codeReturningTrigger()
979 sqlite3SelectPrep(pParse, &sSelect, 0); in codeReturningTrigger()
980 if( pParse->nErr==0 ){ in codeReturningTrigger()
982 sqlite3GenerateColumnNames(pParse, &sSelect); in codeReturningTrigger()
985 pNew = sqlite3ExpandReturning(pParse, pReturning->pReturnEL, pTab); in codeReturningTrigger()
991 pReturning->iRetCur = pParse->nTab++; in codeReturningTrigger()
993 sNC.pParse = pParse; in codeReturningTrigger()
996 pParse->eTriggerOp = pTrigger->op; in codeReturningTrigger()
997 pParse->pTriggerTab = pTab; in codeReturningTrigger()
1003 int reg = pParse->nMem+1; in codeReturningTrigger()
1004 pParse->nMem += nCol+2; in codeReturningTrigger()
1009 sqlite3ExprCodeFactorable(pParse, pCol, reg+i); in codeReturningTrigger()
1020 pParse->eTriggerOp = 0; in codeReturningTrigger()
1021 pParse->pTriggerTab = 0; in codeReturningTrigger()
1031 Parse *pParse, /* The parser context */ in codeTriggerProgram() argument
1036 Vdbe *v = pParse->pVdbe; in codeTriggerProgram()
1037 sqlite3 *db = pParse->db; in codeTriggerProgram()
1039 assert( pParse->pTriggerTab && pParse->pToplevel ); in codeTriggerProgram()
1056 pParse->eOrconf = (orconf==OE_Default)?pStep->orconf:(u8)orconf; in codeTriggerProgram()
1057 assert( pParse->okConstFactor==0 ); in codeTriggerProgram()
1069 sqlite3Update(pParse, in codeTriggerProgram()
1070 sqlite3TriggerStepSrc(pParse, pStep), in codeTriggerProgram()
1073 pParse->eOrconf, 0, 0, 0 in codeTriggerProgram()
1079 sqlite3Insert(pParse, in codeTriggerProgram()
1080 sqlite3TriggerStepSrc(pParse, pStep), in codeTriggerProgram()
1083 pParse->eOrconf, in codeTriggerProgram()
1090 sqlite3DeleteFrom(pParse, in codeTriggerProgram()
1091 sqlite3TriggerStepSrc(pParse, pStep), in codeTriggerProgram()
1101 sqlite3Select(pParse, pSelect, &sDest); in codeTriggerProgram()
1151 Parse *pParse, /* Current parse context */ in codeRowTrigger() argument
1156 Parse *pTop = sqlite3ParseToplevel(pParse); in codeRowTrigger()
1157 sqlite3 *db = pParse->db; /* Database handle */ in codeRowTrigger()
1188 sNC.pParse = &sSubParse; in codeRowTrigger()
1193 sSubParse.nQueryLoop = pParse->nQueryLoop; in codeRowTrigger()
1194 sSubParse.prepFlags = pParse->prepFlags; in codeRowTrigger()
1237 transferParseError(pParse, &sSubParse); in codeRowTrigger()
1239 if( pParse->nErr==0 ){ in codeRowTrigger()
1250 transferParseError(pParse, &sSubParse); in codeRowTrigger()
1265 Parse *pParse, /* Current parse context */ in getRowTrigger() argument
1270 Parse *pRoot = sqlite3ParseToplevel(pParse); in getRowTrigger()
1286 pPrg = codeRowTrigger(pParse, pTrigger, pTab, orconf); in getRowTrigger()
1287 pParse->db->errByteOffset = -1; in getRowTrigger()
1300 Parse *pParse, /* Parse context */ in sqlite3CodeRowTriggerDirect() argument
1307 Vdbe *v = sqlite3GetVdbe(pParse); /* Main VM */ in sqlite3CodeRowTriggerDirect()
1309 pPrg = getRowTrigger(pParse, p, pTab, orconf); in sqlite3CodeRowTriggerDirect()
1310 assert( pPrg || pParse->nErr ); in sqlite3CodeRowTriggerDirect()
1315 int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers)); in sqlite3CodeRowTriggerDirect()
1317 sqlite3VdbeAddOp4(v, OP_Program, reg, ignoreJump, ++pParse->nMem, in sqlite3CodeRowTriggerDirect()
1372 Parse *pParse, /* Parse context */ in sqlite3CodeRowTrigger() argument
1396 || p->pSchema==pParse->db->aDb[1].pSchema ); in sqlite3CodeRowTrigger()
1408 sqlite3CodeRowTriggerDirect(pParse, p, pTab, reg, orconf, ignoreJump); in sqlite3CodeRowTrigger()
1409 }else if( sqlite3IsToplevel(pParse) ){ in sqlite3CodeRowTrigger()
1410 codeReturningTrigger(pParse, p, pTab, reg); in sqlite3CodeRowTrigger()
1442 Parse *pParse, /* Parse context */ in sqlite3TriggerColmask() argument
1464 pPrg = getRowTrigger(pParse, p, pTab, orconf); in sqlite3TriggerColmask()