Lines Matching refs:pTab
33 Table *pTab; in sqlite3SrcListLookup() local
35 pTab = sqlite3LocateTableItem(pParse, 0, pItem); in sqlite3SrcListLookup()
36 sqlite3DeleteTable(pParse->db, pItem->pTab); in sqlite3SrcListLookup()
37 pItem->pTab = pTab; in sqlite3SrcListLookup()
38 if( pTab ){ in sqlite3SrcListLookup()
39 pTab->nTabRef++; in sqlite3SrcListLookup()
41 pTab = 0; in sqlite3SrcListLookup()
44 return pTab; in sqlite3SrcListLookup()
76 static int vtabIsReadOnly(Parse *pParse, Table *pTab){ in vtabIsReadOnly() argument
77 if( sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0 ){ in vtabIsReadOnly()
88 && pTab->u.vtab.p->eVtabRisk > in vtabIsReadOnly()
92 pTab->zName); in vtabIsReadOnly()
96 static int tabIsReadOnly(Parse *pParse, Table *pTab){ in tabIsReadOnly() argument
98 if( IsVirtual(pTab) ){ in tabIsReadOnly()
99 return vtabIsReadOnly(pParse, pTab); in tabIsReadOnly()
101 if( (pTab->tabFlags & (TF_Readonly|TF_Shadow))==0 ) return 0; in tabIsReadOnly()
103 if( (pTab->tabFlags & TF_Readonly)!=0 ){ in tabIsReadOnly()
106 assert( pTab->tabFlags & TF_Shadow ); in tabIsReadOnly()
117 int sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk){ in sqlite3IsReadOnly() argument
118 if( tabIsReadOnly(pParse, pTab) ){ in sqlite3IsReadOnly()
119 sqlite3ErrorMsg(pParse, "table %s may not be modified", pTab->zName); in sqlite3IsReadOnly()
123 if( !viewOk && IsView(pTab) ){ in sqlite3IsReadOnly()
124 sqlite3ErrorMsg(pParse,"cannot modify %s because it is a view",pTab->zName); in sqlite3IsReadOnly()
191 Table *pTab; in sqlite3LimitWhere() local
218 pTab = pSrc->a[0].pTab; in sqlite3LimitWhere()
219 if( HasRowid(pTab) ){ in sqlite3LimitWhere()
225 Index *pPk = sqlite3PrimaryKeyIndex(pTab); in sqlite3LimitWhere()
227 const char *zName = pTab->aCol[pPk->aiColumn[0]].zCnName; in sqlite3LimitWhere()
233 Expr *p = sqlite3Expr(db, TK_ID, pTab->aCol[pPk->aiColumn[i]].zCnName); in sqlite3LimitWhere()
245 pSrc->a[0].pTab = 0; in sqlite3LimitWhere()
247 pSrc->a[0].pTab = pTab; in sqlite3LimitWhere()
285 Table *pTab; /* The table from which records will be deleted */ in sqlite3DeleteFrom() local
334 pTab = sqlite3SrcListLookup(pParse, pTabList); in sqlite3DeleteFrom()
335 if( pTab==0 ) goto delete_from_cleanup; in sqlite3DeleteFrom()
341 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); in sqlite3DeleteFrom()
342 isView = IsView(pTab); in sqlite3DeleteFrom()
347 bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0); in sqlite3DeleteFrom()
373 if( sqlite3ViewGetColumnNames(pParse, pTab) ){ in sqlite3DeleteFrom()
377 if( sqlite3IsReadOnly(pParse, pTab, (pTrigger?1:0)) ){ in sqlite3DeleteFrom()
380 iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3DeleteFrom()
382 rcauth = sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, in sqlite3DeleteFrom()
394 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ in sqlite3DeleteFrom()
401 sqlite3AuthContextPush(pParse, &sContext, pTab->zName); in sqlite3DeleteFrom()
418 sqlite3MaterializeView(pParse, pTab, in sqlite3DeleteFrom()
463 && !IsVirtual(pTab) in sqlite3DeleteFrom()
469 sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); in sqlite3DeleteFrom()
470 if( HasRowid(pTab) ){ in sqlite3DeleteFrom()
471 sqlite3VdbeAddOp4(v, OP_Clear, pTab->tnum, iDb, memCnt ? memCnt : -1, in sqlite3DeleteFrom()
472 pTab->zName, P4_STATIC); in sqlite3DeleteFrom()
474 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ in sqlite3DeleteFrom()
475 assert( pIdx->pSchema==pTab->pSchema ); in sqlite3DeleteFrom()
476 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ in sqlite3DeleteFrom()
488 if( HasRowid(pTab) ){ in sqlite3DeleteFrom()
497 pPk = sqlite3PrimaryKeyIndex(pTab); in sqlite3DeleteFrom()
518 assert( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI ); in sqlite3DeleteFrom()
519 assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF ); in sqlite3DeleteFrom()
534 sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, in sqlite3DeleteFrom()
540 sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, -1, iKey); in sqlite3DeleteFrom()
585 testcase( IsVirtual(pTab) ); in sqlite3DeleteFrom()
586 sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, OPFLAG_FORDELETE, in sqlite3DeleteFrom()
588 assert( pPk || IsVirtual(pTab) || iDataCur==iTabCur ); in sqlite3DeleteFrom()
589 assert( pPk || IsVirtual(pTab) || iIdxCur==iDataCur+1 ); in sqlite3DeleteFrom()
600 if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){ in sqlite3DeleteFrom()
601 assert( pPk!=0 || IsView(pTab) ); in sqlite3DeleteFrom()
607 if( IsVirtual(pTab) ){ in sqlite3DeleteFrom()
621 if( IsVirtual(pTab) ){ in sqlite3DeleteFrom()
622 const char *pVTab = (const char *)sqlite3GetVTable(db, pTab); in sqlite3DeleteFrom()
623 sqlite3VtabMakeWritable(pParse, pTab); in sqlite3DeleteFrom()
638 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, in sqlite3DeleteFrom()
735 Table *pTab, /* Table containing the row to be deleted */ in sqlite3GenerateRowDelete() argument
760 opSeek = HasRowid(pTab) ? OP_NotExists : OP_NotFound; in sqlite3GenerateRowDelete()
769 if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){ in sqlite3GenerateRowDelete()
777 pParse, pTrigger, 0, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onconf in sqlite3GenerateRowDelete()
779 mask |= sqlite3FkOldmask(pParse, pTab); in sqlite3GenerateRowDelete()
781 pParse->nMem += (1 + pTab->nCol); in sqlite3GenerateRowDelete()
786 for(iCol=0; iCol<pTab->nCol; iCol++){ in sqlite3GenerateRowDelete()
790 int kk = sqlite3TableColumnToStorage(pTab, iCol); in sqlite3GenerateRowDelete()
791 sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, iCol, iOld+kk+1); in sqlite3GenerateRowDelete()
798 TK_DELETE, 0, TRIGGER_BEFORE, pTab, iOld, onconf, iLabel in sqlite3GenerateRowDelete()
820 sqlite3FkCheck(pParse, pTab, iOld, 0, 0, 0); in sqlite3GenerateRowDelete()
833 if( !IsView(pTab) ){ in sqlite3GenerateRowDelete()
835 sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,iIdxNoSeek); in sqlite3GenerateRowDelete()
837 if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){ in sqlite3GenerateRowDelete()
838 sqlite3VdbeAppendP4(v, (char*)pTab, P4_TABLE); in sqlite3GenerateRowDelete()
853 sqlite3FkActions(pParse, pTab, 0, iOld, 0, 0); in sqlite3GenerateRowDelete()
857 TK_DELETE, 0, TRIGGER_AFTER, pTab, iOld, onconf, iLabel in sqlite3GenerateRowDelete()
887 Table *pTab, /* Table containing the row to be deleted */ in sqlite3GenerateRowIndexDelete() argument
902 pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab); in sqlite3GenerateRowIndexDelete()
903 for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ in sqlite3GenerateRowIndexDelete()