Lines Matching refs:pTab

323   Table *pTab,          /* Parent table of FK pFKey */  in fkLookupParent()  argument
379 if( pTab==pFKey->pFrom && nIncr==1 ){ in fkLookupParent()
384 sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); in fkLookupParent()
412 if( pTab==pFKey->pFrom && nIncr==1 ){ in fkLookupParent()
421 assert( aiCol[i]!=pTab->iPKey ); in fkLookupParent()
422 if( pIdx->aiColumn[i]==pTab->iPKey ){ in fkLookupParent()
473 Table *pTab, /* The table whose content is at r[regBase]... */ in exprTableRegister() argument
484 if( iCol>=0 && iCol!=pTab->iPKey ){ in exprTableRegister()
485 pCol = &pTab->aCol[iCol]; in exprTableRegister()
486 pExpr->iTable = regBase + sqlite3TableColumnToStorage(pTab,iCol) + 1; in exprTableRegister()
505 Table *pTab, /* The table whose column is desired */ in exprTableColumn() argument
512 pExpr->y.pTab = pTab; in exprTableColumn()
550 Table *pTab, /* The parent table */ in fkScanChildren() argument
565 assert( pIdx==0 || pIdx->pTable==pTab ); in fkScanChildren()
568 assert( pIdx!=0 || HasRowid(pTab) ); in fkScanChildren()
591 pLeft = exprTableRegister(pParse, pTab, regData, iCol); in fkScanChildren()
614 if( pTab==pFKey->pFrom && nIncr>0 ){ in fkScanChildren()
618 if( HasRowid(pTab) ){ in fkScanChildren()
619 pLeft = exprTableRegister(pParse, pTab, regData, -1); in fkScanChildren()
620 pRight = exprTableColumn(db, pTab, pSrc->a[0].iCursor, -1); in fkScanChildren()
628 pLeft = exprTableRegister(pParse, pTab, regData, iCol); in fkScanChildren()
629 pRight = sqlite3Expr(db, TK_ID, pTab->aCol[iCol].zCnName); in fkScanChildren()
676 FKey *sqlite3FkReferences(Table *pTab){ in sqlite3FkReferences() argument
677 return (FKey *)sqlite3HashFind(&pTab->pSchema->fkeyHash, pTab->zName); in sqlite3FkReferences()
708 Table *pTab = sqliteHashData(k); in sqlite3FkClearTriggerCache() local
710 if( !IsOrdinaryTable(pTab) ) continue; in sqlite3FkClearTriggerCache()
711 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){ in sqlite3FkClearTriggerCache()
735 void sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table *pTab){ in sqlite3FkDropTable() argument
737 if( (db->flags&SQLITE_ForeignKeys) && IsOrdinaryTable(pTab) ){ in sqlite3FkDropTable()
742 assert( IsOrdinaryTable(pTab) ); in sqlite3FkDropTable()
743 if( sqlite3FkReferences(pTab)==0 ){ in sqlite3FkDropTable()
750 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){ in sqlite3FkDropTable()
799 Table *pTab, /* Table being updated */ in fkChildIsModified() argument
808 if( iChildKey==pTab->iPKey && bChngRowid ) return 1; in fkChildIsModified()
826 Table *pTab, in fkParentIsModified() argument
835 for(iKey=0; iKey<pTab->nCol; iKey++){ in fkParentIsModified()
836 if( aChange[iKey]>=0 || (iKey==pTab->iPKey && bChngRowid) ){ in fkParentIsModified()
837 Column *pCol = &pTab->aCol[iKey]; in fkParentIsModified()
889 Table *pTab, /* Row is being deleted from this table */ in sqlite3FkCheck() argument
906 if( !IsOrdinaryTable(pTab) ) return; in sqlite3FkCheck()
908 iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3FkCheck()
913 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){ in sqlite3FkCheck()
923 && sqlite3_stricmp(pTab->zName, pFKey->zTo)!=0 in sqlite3FkCheck()
924 && fkChildIsModified(pTab, pFKey, aChange, bChngRowid)==0 in sqlite3FkCheck()
970 if( aiCol[i]==pTab->iPKey ){ in sqlite3FkCheck()
1016 for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){ in sqlite3FkCheck()
1021 if( aChange && fkParentIsModified(pTab, pFKey, aChange, bChngRowid)==0 ){ in sqlite3FkCheck()
1034 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ){ in sqlite3FkCheck()
1045 pItem->pTab = pFKey->pFrom; in sqlite3FkCheck()
1047 pItem->pTab->nTabRef++; 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()
1092 Table *pTab /* Table being modified */ in sqlite3FkOldmask() argument
1095 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){ in sqlite3FkOldmask()
1098 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){ in sqlite3FkOldmask()
1101 for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ in sqlite3FkOldmask()
1103 sqlite3FkLocateIndex(pParse, pTab, p, &pIdx, 0); in sqlite3FkOldmask()
1142 Table *pTab, /* Table being modified */ in sqlite3FkRequired() argument
1148 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){ in sqlite3FkRequired()
1153 bHaveFK = (sqlite3FkReferences(pTab) || pTab->u.tab.pFKey); in sqlite3FkRequired()
1160 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){ in sqlite3FkRequired()
1161 if( fkChildIsModified(pTab, p, aChange, chngRowid) ){ in sqlite3FkRequired()
1162 if( 0==sqlite3_stricmp(pTab->zName, p->zTo) ) eRet = 2; in sqlite3FkRequired()
1168 for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ in sqlite3FkRequired()
1169 if( fkParentIsModified(pTab, p, aChange, chngRowid) ){ in sqlite3FkRequired()
1210 Table *pTab, /* Table being updated or deleted from */ in fkActionTrigger() argument
1237 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ) return 0; in fkActionTrigger()
1250 assert( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) ); in fkActionTrigger()
1253 pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zCnName); in fkActionTrigger()
1319 int iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in fkActionTrigger()
1392 pTrigger->pSchema = pTab->pSchema; in fkActionTrigger()
1393 pTrigger->pTabSchema = pTab->pSchema; in fkActionTrigger()
1407 Table *pTab, /* Table being updated or deleted from */ in sqlite3FkActions() argument
1419 for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){ in sqlite3FkActions()
1420 if( aChange==0 || fkParentIsModified(pTab, pFKey, aChange, bChngRowid) ){ in sqlite3FkActions()
1421 Trigger *pAct = fkActionTrigger(pParse, pTab, pFKey, pChanges); in sqlite3FkActions()
1423 sqlite3CodeRowTriggerDirect(pParse, pAct, pTab, regOld, OE_Abort, 0); in sqlite3FkActions()
1437 void sqlite3FkDelete(sqlite3 *db, Table *pTab){ in sqlite3FkDelete() argument
1441 assert( IsOrdinaryTable(pTab) ); in sqlite3FkDelete()
1443 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pNext){ in sqlite3FkDelete()
1444 assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pTab->pSchema) ); in sqlite3FkDelete()
1453 sqlite3HashInsert(&pTab->pSchema->fkeyHash, z, p); in sqlite3FkDelete()