Lines Matching refs:pParse
184 Parse *pParse, /* Parse context to store any error in */ in sqlite3FkLocateIndex() argument
198 assert( pParse ); in sqlite3FkLocateIndex()
224 aiCol = (int *)sqlite3DbMallocRawNN(pParse->db, nCol*sizeof(int)); in sqlite3FkLocateIndex()
281 if( !pParse->disableTriggers ){ in sqlite3FkLocateIndex()
282 sqlite3ErrorMsg(pParse, in sqlite3FkLocateIndex()
286 sqlite3DbFree(pParse->db, aiCol); in sqlite3FkLocateIndex()
321 Parse *pParse, /* Parse context */ in fkLookupParent() argument
332 Vdbe *v = sqlite3GetVdbe(pParse); /* Vdbe to add code to */ in fkLookupParent()
333 int iCur = pParse->nTab - 1; /* Cursor number to use */ in fkLookupParent()
334 int iOk = sqlite3VdbeMakeLabel(pParse); /* jump here if parent key found */ in fkLookupParent()
338 && !(pParse->db->flags & SQLITE_DeferFKs) in fkLookupParent()
339 && !pParse->pToplevel in fkLookupParent()
340 && !pParse->isMultiWrite) ? OE_Abort : OE_Ignore); in fkLookupParent()
363 int regTemp = sqlite3GetTempReg(pParse); in fkLookupParent()
384 sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); in fkLookupParent()
389 sqlite3ReleaseTempReg(pParse, regTemp); in fkLookupParent()
392 int regTemp = sqlite3GetTempRange(pParse, nCol); in fkLookupParent()
395 sqlite3VdbeSetP4KeyInfo(pParse, pIdx); in fkLookupParent()
433 sqlite3IndexAffinityStr(pParse->db,pIdx), nCol); in fkLookupParent()
436 sqlite3ReleaseTempRange(pParse, regTemp, nCol); in fkLookupParent()
440 if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs) in fkLookupParent()
441 && !pParse->pToplevel in fkLookupParent()
442 && !pParse->isMultiWrite in fkLookupParent()
449 sqlite3HaltConstraint(pParse, SQLITE_CONSTRAINT_FOREIGNKEY, in fkLookupParent()
453 sqlite3MayAbort(pParse); in fkLookupParent()
472 Parse *pParse, /* Parsing and code generating context */ in exprTableRegister() argument
480 sqlite3 *db = pParse->db; in exprTableRegister()
490 pExpr = sqlite3ExprAddCollateString(pParse, pExpr, zColl); in exprTableRegister()
548 Parse *pParse, /* Parse context */ in fkScanChildren() argument
557 sqlite3 *db = pParse->db; /* Database handle */ in fkScanChildren()
563 Vdbe *v = sqlite3GetVdbe(pParse); in fkScanChildren()
591 pLeft = exprTableRegister(pParse, pTab, regData, iCol); in fkScanChildren()
596 pEq = sqlite3PExpr(pParse, TK_EQ, pLeft, pRight); in fkScanChildren()
597 pWhere = sqlite3ExprAnd(pParse, pWhere, pEq); in fkScanChildren()
619 pLeft = exprTableRegister(pParse, pTab, regData, -1); in fkScanChildren()
621 pNe = sqlite3PExpr(pParse, TK_NE, pLeft, pRight); in fkScanChildren()
628 pLeft = exprTableRegister(pParse, pTab, regData, iCol); in fkScanChildren()
630 pEq = sqlite3PExpr(pParse, TK_IS, pLeft, pRight); in fkScanChildren()
631 pAll = sqlite3ExprAnd(pParse, pAll, pEq); in fkScanChildren()
633 pNe = sqlite3PExpr(pParse, TK_NOT, pAll, 0); in fkScanChildren()
635 pWhere = sqlite3ExprAnd(pParse, pWhere, pNe); in fkScanChildren()
641 sNameContext.pParse = pParse; in fkScanChildren()
647 if( pParse->nErr==0 ){ in fkScanChildren()
648 pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0, 0, 0, 0, 0); in fkScanChildren()
735 void sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table *pTab){ in sqlite3FkDropTable() argument
736 sqlite3 *db = pParse->db; in sqlite3FkDropTable()
739 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3FkDropTable()
754 iSkip = sqlite3VdbeMakeLabel(pParse); in sqlite3FkDropTable()
758 pParse->disableTriggers = 1; in sqlite3FkDropTable()
759 sqlite3DeleteFrom(pParse, sqlite3SrcListDup(db, pName, 0), 0, 0, 0); in sqlite3FkDropTable()
760 pParse->disableTriggers = 0; in sqlite3FkDropTable()
775 sqlite3HaltConstraint(pParse, SQLITE_CONSTRAINT_FOREIGNKEY, in sqlite3FkDropTable()
854 static int isSetNullAction(Parse *pParse, FKey *pFKey){ in isSetNullAction() argument
855 Parse *pTop = sqlite3ParseToplevel(pParse); in isSetNullAction()
888 Parse *pParse, /* Parse context */ in sqlite3FkCheck() argument
895 sqlite3 *db = pParse->db; /* Database handle */ in sqlite3FkCheck()
899 int isIgnoreErrors = pParse->disableTriggers; in sqlite3FkCheck()
933 if( pParse->disableTriggers ){ in sqlite3FkCheck()
936 pTo = sqlite3LocateTable(pParse, 0, pFKey->zTo, zDb); in sqlite3FkCheck()
938 if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){ in sqlite3FkCheck()
949 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3FkCheck()
981 rcauth = sqlite3AuthReadCol(pParse, pTo->zName, zCol, iDb); in sqlite3FkCheck()
990 sqlite3TableLock(pParse, iDb, pTo->tnum, 0, pTo->zName); in sqlite3FkCheck()
991 pParse->nTab++; in sqlite3FkCheck()
997 fkLookupParent(pParse, iDb, pTo, pIdx, pFKey, aiCol, regOld, -1, bIgnore); in sqlite3FkCheck()
999 if( regNew!=0 && !isSetNullAction(pParse, pFKey) ){ in sqlite3FkCheck()
1008 fkLookupParent(pParse, iDb, pTo, pIdx, pFKey, aiCol, regNew, +1, bIgnore); in sqlite3FkCheck()
1026 && !pParse->pToplevel && !pParse->isMultiWrite in sqlite3FkCheck()
1034 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ){ in sqlite3FkCheck()
1042 pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); in sqlite3FkCheck()
1048 pItem->iCursor = pParse->nTab++; in sqlite3FkCheck()
1051 fkScanChildren(pParse, pSrc, pTab, pIdx, pFKey, aiCol, regNew, -1); in sqlite3FkCheck()
1055 fkScanChildren(pParse, pSrc, pTab, pIdx, pFKey, aiCol, regOld, 1); in sqlite3FkCheck()
1074 sqlite3MayAbort(pParse); in sqlite3FkCheck()
1091 Parse *pParse, /* Parse context */ in sqlite3FkOldmask() argument
1095 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){ in sqlite3FkOldmask()
1103 sqlite3FkLocateIndex(pParse, pTab, p, &pIdx, 0); in sqlite3FkOldmask()
1141 Parse *pParse, /* Parse context */ in sqlite3FkRequired() argument
1148 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){ in sqlite3FkRequired()
1209 Parse *pParse, /* Parse context */ in fkActionTrigger() argument
1214 sqlite3 *db = pParse->db; /* Database handle */ in fkActionTrigger()
1237 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ) return 0; in fkActionTrigger()
1260 pEq = sqlite3PExpr(pParse, TK_EQ, in fkActionTrigger()
1261 sqlite3PExpr(pParse, TK_DOT, in fkActionTrigger()
1266 pWhere = sqlite3ExprAnd(pParse, pWhere, pEq); in fkActionTrigger()
1274 pEq = sqlite3PExpr(pParse, TK_IS, in fkActionTrigger()
1275 sqlite3PExpr(pParse, TK_DOT, in fkActionTrigger()
1278 sqlite3PExpr(pParse, TK_DOT, in fkActionTrigger()
1282 pWhen = sqlite3ExprAnd(pParse, pWhen, pEq); in fkActionTrigger()
1288 pNew = sqlite3PExpr(pParse, TK_DOT, in fkActionTrigger()
1309 pList = sqlite3ExprListAppend(pParse, pList, pNew); in fkActionTrigger()
1310 sqlite3ExprListSetName(pParse, pList, &tFromCol, 0); in fkActionTrigger()
1333 pSelect = sqlite3SelectNew(pParse, in fkActionTrigger()
1334 sqlite3ExprListAppend(pParse, 0, pRaise), in fkActionTrigger()
1335 sqlite3SrcListAppend(pParse, 0, &tDb, &tFrom), in fkActionTrigger()
1359 pWhen = sqlite3PExpr(pParse, TK_NOT, pWhen, 0); in fkActionTrigger()
1406 Parse *pParse, /* Parse context */ in sqlite3FkActions() argument
1417 if( pParse->db->flags&SQLITE_ForeignKeys ){ in sqlite3FkActions()
1421 Trigger *pAct = fkActionTrigger(pParse, pTab, pFKey, pChanges); in sqlite3FkActions()
1423 sqlite3CodeRowTriggerDirect(pParse, pAct, pTab, regOld, OE_Abort, 0); in sqlite3FkActions()