Lines Matching refs:pTab
30 Table *pTab, /* The table to be opened */ in sqlite3OpenTable() argument
34 assert( !IsVirtual(pTab) ); in sqlite3OpenTable()
38 sqlite3TableLock(pParse, iDb, pTab->tnum, in sqlite3OpenTable()
39 (opcode==OP_OpenWrite)?1:0, pTab->zName); in sqlite3OpenTable()
40 if( HasRowid(pTab) ){ in sqlite3OpenTable()
41 sqlite3VdbeAddOp4Int(v, opcode, iCur, pTab->tnum, iDb, pTab->nNVCol); in sqlite3OpenTable()
42 VdbeComment((v, "%s", pTab->zName)); in sqlite3OpenTable()
44 Index *pPk = sqlite3PrimaryKeyIndex(pTab); in sqlite3OpenTable()
46 assert( pPk->tnum==pTab->tnum || CORRUPT_DB ); in sqlite3OpenTable()
49 VdbeComment((v, "%s", pTab->zName)); in sqlite3OpenTable()
84 Table *pTab = pIdx->pTable; in sqlite3IndexAffinityStr() local
94 aff = pTab->aCol[x].affinity; in sqlite3IndexAffinityStr()
118 char *sqlite3TableAffinityStr(sqlite3 *db, const Table *pTab){ in sqlite3TableAffinityStr() argument
120 zColAff = (char *)sqlite3DbMallocRaw(db, pTab->nCol+1); in sqlite3TableAffinityStr()
123 for(i=j=0; i<pTab->nCol; i++){ in sqlite3TableAffinityStr()
124 if( (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){ in sqlite3TableAffinityStr()
125 zColAff[j++] = pTab->aCol[i].affinity; in sqlite3TableAffinityStr()
175 void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ in sqlite3TableAffinity() argument
178 if( pTab->tabFlags & TF_Strict ){ in sqlite3TableAffinity()
184 sqlite3VdbeAppendP4(v, pTab, P4_TABLE); in sqlite3TableAffinity()
192 sqlite3VdbeAddOp2(v, OP_TypeCheck, iReg, pTab->nNVCol); in sqlite3TableAffinity()
193 sqlite3VdbeAppendP4(v, pTab, P4_TABLE); in sqlite3TableAffinity()
197 zColAff = pTab->zColAff; in sqlite3TableAffinity()
199 zColAff = sqlite3TableAffinityStr(0, pTab); in sqlite3TableAffinity()
204 pTab->zColAff = zColAff; in sqlite3TableAffinity()
225 static int readsTable(Parse *p, int iDb, Table *pTab){ in readsTable() argument
230 VTable *pVTab = IsVirtual(pTab) ? sqlite3GetVTable(p->db, pTab) : 0; in readsTable()
239 if( tnum==pTab->tnum ){ in readsTable()
242 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){ in readsTable()
264 assert( pExpr->iColumn < pWalker->u.pTab->nCol ); in exprColumnFlagUnion()
265 pWalker->eCode |= pWalker->u.pTab->aCol[pExpr->iColumn].colFlags; in exprColumnFlagUnion()
281 Table *pTab /* The table */ in sqlite3ComputeGeneratedColumns() argument
289 assert( pTab->tabFlags & TF_HasGenerated ); in sqlite3ComputeGeneratedColumns()
290 testcase( pTab->tabFlags & TF_HasVirtual ); in sqlite3ComputeGeneratedColumns()
291 testcase( pTab->tabFlags & TF_HasStored ); in sqlite3ComputeGeneratedColumns()
296 sqlite3TableAffinity(pParse->pVdbe, pTab, iRegStore); in sqlite3ComputeGeneratedColumns()
297 if( (pTab->tabFlags & TF_HasStored)!=0 ){ in sqlite3ComputeGeneratedColumns()
308 if( pTab->aCol[ii].colFlags & COLFLAG_VIRTUAL ){ in sqlite3ComputeGeneratedColumns()
311 if( pTab->aCol[ii].colFlags & COLFLAG_STORED ){ in sqlite3ComputeGeneratedColumns()
328 for(i=0; i<pTab->nCol; i++){ in sqlite3ComputeGeneratedColumns()
329 if( pTab->aCol[i].colFlags & COLFLAG_GENERATED ){ in sqlite3ComputeGeneratedColumns()
330 testcase( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ); in sqlite3ComputeGeneratedColumns()
331 testcase( pTab->aCol[i].colFlags & COLFLAG_STORED ); in sqlite3ComputeGeneratedColumns()
332 pTab->aCol[i].colFlags |= COLFLAG_NOTAVAIL; in sqlite3ComputeGeneratedColumns()
336 w.u.pTab = pTab; in sqlite3ComputeGeneratedColumns()
350 for(i=0; i<pTab->nCol; i++){ in sqlite3ComputeGeneratedColumns()
351 Column *pCol = pTab->aCol + i; in sqlite3ComputeGeneratedColumns()
356 sqlite3WalkExpr(&w, sqlite3ColumnExpr(pTab, pCol)); in sqlite3ComputeGeneratedColumns()
364 x = sqlite3TableColumnToStorage(pTab, i) + iRegStore; in sqlite3ComputeGeneratedColumns()
365 sqlite3ExprCodeGeneratedColumn(pParse, pTab, pCol, x); in sqlite3ComputeGeneratedColumns()
405 Table *pTab /* The table we are writing to */ in autoIncBegin() argument
409 if( (pTab->tabFlags & TF_Autoincrement)!=0 in autoIncBegin()
430 while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; } in autoIncBegin()
438 pInfo->pTab = pTab; in autoIncBegin()
487 sqlite3VdbeLoadString(v, memId-1, p->pTab->zName); in sqlite3AutoincrementBegin()
692 Table *pTab; /* The table to insert into. aka TABLE */ in sqlite3Insert() local
751 pTab = sqlite3SrcListLookup(pParse, pTabList); in sqlite3Insert()
752 if( pTab==0 ){ in sqlite3Insert()
755 iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3Insert()
757 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, pTab->zName, 0, in sqlite3Insert()
761 withoutRowid = !HasRowid(pTab); in sqlite3Insert()
767 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_INSERT, 0, &tmask); in sqlite3Insert()
768 isView = IsView(pTab); in sqlite3Insert()
791 if( sqlite3ViewGetColumnNames(pParse, pTab) ){ in sqlite3Insert()
797 if( sqlite3IsReadOnly(pParse, pTab, tmask) ){ in sqlite3Insert()
821 && xferOptimization(pParse, pTab, pSelect, onError, iDb) in sqlite3Insert()
832 regAutoinc = autoIncBegin(pParse, iDb, pTab); in sqlite3Insert()
838 pParse->nMem += pTab->nCol + 1; in sqlite3Insert()
839 if( IsVirtual(pTab) ){ in sqlite3Insert()
864 bIdListInOrder = (pTab->tabFlags & (TF_OOOHidden|TF_HasStored))==0; in sqlite3Insert()
872 for(j=0; j<pTab->nCol; j++){ in sqlite3Insert()
873 if( sqlite3StrICmp(pColumn->a[i].zName, pTab->aCol[j].zCnName)==0 ){ in sqlite3Insert()
876 if( j==pTab->iPKey ){ in sqlite3Insert()
880 if( pTab->aCol[j].colFlags & (COLFLAG_STORED|COLFLAG_VIRTUAL) ){ in sqlite3Insert()
883 pTab->aCol[j].zCnName); in sqlite3Insert()
890 if( j>=pTab->nCol ){ in sqlite3Insert()
921 dest.nSdst = pTab->nCol; in sqlite3Insert()
941 if( pTrigger || readsTable(pParse, iDb, pTab) ){ in sqlite3Insert()
997 ipkColumn = pTab->iPKey; in sqlite3Insert()
999 if( ipkColumn>=0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){ in sqlite3Insert()
1000 testcase( pTab->tabFlags & TF_HasVirtual ); in sqlite3Insert()
1001 testcase( pTab->tabFlags & TF_HasStored ); in sqlite3Insert()
1003 if( pTab->aCol[i].colFlags & COLFLAG_GENERATED ){ in sqlite3Insert()
1004 testcase( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ); in sqlite3Insert()
1005 testcase( pTab->aCol[i].colFlags & COLFLAG_STORED ); in sqlite3Insert()
1018 if( (pTab->tabFlags & (TF_HasGenerated|TF_HasHidden))!=0 ){ in sqlite3Insert()
1019 for(i=0; i<pTab->nCol; i++){ in sqlite3Insert()
1020 if( pTab->aCol[i].colFlags & COLFLAG_NOINSERT ) nHidden++; in sqlite3Insert()
1023 if( nColumn!=(pTab->nCol-nHidden) ){ in sqlite3Insert()
1026 pTabList->a, pTab->nCol-nHidden, nColumn); in sqlite3Insert()
1049 nIdx = sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, 0, -1, 0, in sqlite3Insert()
1055 for(i=0, pIdx=pTab->pIndex; i<nIdx; pIdx=pIdx->pNext, i++){ in sqlite3Insert()
1065 if( IsVirtual(pTab) ){ in sqlite3Insert()
1067 pTab->zName); in sqlite3Insert()
1070 if( IsView(pTab) ){ in sqlite3Insert()
1117 sqlite3VdbeReleaseRegisters(pParse, regData, pTab->nCol, 0, 0); in sqlite3Insert()
1137 for(i=0; i<pTab->nCol; i++, iRegStore++){ in sqlite3Insert()
1141 if( i==pTab->iPKey ){ in sqlite3Insert()
1149 if( ((colFlags = pTab->aCol[i].colFlags) & COLFLAG_NOINSERT)!=0 ){ in sqlite3Insert()
1170 sqlite3ColumnExpr(pTab, &pTab->aCol[i]), in sqlite3Insert()
1182 sqlite3ColumnExpr(pTab, &pTab->aCol[i]), in sqlite3Insert()
1190 sqlite3ColumnExpr(pTab, &pTab->aCol[i]), in sqlite3Insert()
1218 int regCols = sqlite3GetTempRange(pParse, pTab->nCol+1); in sqlite3Insert()
1244 assert( pTab->nNVCol>0 ); in sqlite3Insert()
1245 sqlite3VdbeAddOp3(v, OP_Copy, regRowid+1, regCols+1, pTab->nNVCol-1); in sqlite3Insert()
1252 if( pTab->tabFlags & TF_HasGenerated ){ in sqlite3Insert()
1253 testcase( pTab->tabFlags & TF_HasVirtual ); in sqlite3Insert()
1254 testcase( pTab->tabFlags & TF_HasStored ); in sqlite3Insert()
1255 sqlite3ComputeGeneratedColumns(pParse, regCols+1, pTab); in sqlite3Insert()
1265 sqlite3TableAffinity(v, pTab, regCols+1); in sqlite3Insert()
1270 pTab, regCols-pTab->nCol-1, onError, endOfLoop); in sqlite3Insert()
1272 sqlite3ReleaseTempRange(pParse, regCols, pTab->nCol+1); in sqlite3Insert()
1276 if( IsVirtual(pTab) ){ in sqlite3Insert()
1288 if( pIpk->op==TK_NULL && !IsVirtual(pTab) ){ in sqlite3Insert()
1300 if( !IsVirtual(pTab) ){ in sqlite3Insert()
1310 }else if( IsVirtual(pTab) || withoutRowid ){ in sqlite3Insert()
1323 if( pTab->tabFlags & TF_HasGenerated ){ in sqlite3Insert()
1324 sqlite3ComputeGeneratedColumns(pParse, regRowid+1, pTab); in sqlite3Insert()
1332 if( IsVirtual(pTab) ){ in sqlite3Insert()
1333 const char *pVTab = (const char *)sqlite3GetVTable(db, pTab); in sqlite3Insert()
1334 sqlite3VtabMakeWritable(pParse, pTab); in sqlite3Insert()
1335 sqlite3VdbeAddOp4(v, OP_VUpdate, 1, pTab->nCol+2, regIns, pVTab, P4_VTAB); in sqlite3Insert()
1343 sqlite3GenerateConstraintChecks(pParse, pTab, aRegIdx, iDataCur, iIdxCur, in sqlite3Insert()
1347 sqlite3FkCheck(pParse, pTab, 0, regIns, 0, 0); in sqlite3Insert()
1359 sqlite3CompleteInsertion(pParse, pTab, iDataCur, iIdxCur, in sqlite3Insert()
1381 pTab, regData-2-pTab->nCol, onError, endOfLoop); in sqlite3Insert()
1668 Table *pTab, /* The table being inserted or updated */ in sqlite3GenerateConstraintChecks() argument
1711 assert( !IsView(pTab) ); /* This table is not a VIEW */ in sqlite3GenerateConstraintChecks()
1712 nCol = pTab->nCol; in sqlite3GenerateConstraintChecks()
1718 if( HasRowid(pTab) ){ in sqlite3GenerateConstraintChecks()
1722 pPk = sqlite3PrimaryKeyIndex(pTab); in sqlite3GenerateConstraintChecks()
1732 if( pTab->tabFlags & TF_HasNotNull ){ in sqlite3GenerateConstraintChecks()
1739 Column *pCol = &pTab->aCol[i]; /* The column to check for NOT NULL */ in sqlite3GenerateConstraintChecks()
1743 if( i==pTab->iPKey ){ in sqlite3GenerateConstraintChecks()
1776 testcase( i!=sqlite3TableColumnToStorage(pTab, i) ); in sqlite3GenerateConstraintChecks()
1777 iReg = sqlite3TableColumnToStorage(pTab, i) + regNewData + 1; in sqlite3GenerateConstraintChecks()
1785 sqlite3ColumnExpr(pTab, pCol), iReg); in sqlite3GenerateConstraintChecks()
1794 char *zMsg = sqlite3MPrintf(db, "%s.%s", pTab->zName, in sqlite3GenerateConstraintChecks()
1820 if( nSeenReplace>0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){ in sqlite3GenerateConstraintChecks()
1825 sqlite3ComputeGeneratedColumns(pParse, regNewData+1, pTab); in sqlite3GenerateConstraintChecks()
1834 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){ in sqlite3GenerateConstraintChecks()
1835 ExprList *pCheck = pTab->pCheck; in sqlite3GenerateConstraintChecks()
1850 sqlite3TableAffinity(v, pTab, regNewData+1); in sqlite3GenerateConstraintChecks()
1907 sIdxIter.u.lx.pIdx = pTab->pIndex; in sqlite3GenerateConstraintChecks()
1921 }else if( pTab->pIndex!=0 ){ in sqlite3GenerateConstraintChecks()
1929 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ in sqlite3GenerateConstraintChecks()
1943 pIdx = pTab->pIndex; in sqlite3GenerateConstraintChecks()
1954 for(jj=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, jj++){ in sqlite3GenerateConstraintChecks()
1991 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); in sqlite3GenerateConstraintChecks()
1992 regTrigCnt = pTrigger!=0 || sqlite3FkRequired(pParse, pTab, 0, 0); in sqlite3GenerateConstraintChecks()
1995 regTrigCnt = sqlite3FkRequired(pParse, pTab, 0, 0); in sqlite3GenerateConstraintChecks()
2015 onError = pTab->keyConf; in sqlite3GenerateConstraintChecks()
2047 && pTab->pIndex /* There exist other constraints */ in sqlite3GenerateConstraintChecks()
2081 sqlite3RowidConstraint(pParse, onError, pTab); in sqlite3GenerateConstraintChecks()
2109 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, in sqlite3GenerateConstraintChecks()
2115 assert( HasRowid(pTab) ); in sqlite3GenerateConstraintChecks()
2121 sqlite3VdbeAppendP4(v, pTab, P4_TABLE); in sqlite3GenerateConstraintChecks()
2123 if( pTab->pIndex ){ in sqlite3GenerateConstraintChecks()
2125 sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,-1); in sqlite3GenerateConstraintChecks()
2133 sqlite3UpsertDoUpdate(pParse, pUpsert, pTab, 0, iDataCur); in sqlite3GenerateConstraintChecks()
2178 sqlite3TableAffinity(v, pTab, regNewData+1); in sqlite3GenerateConstraintChecks()
2206 }else if( iField==XN_ROWID || iField==pTab->iPKey ){ in sqlite3GenerateConstraintChecks()
2211 testcase( sqlite3TableColumnToStorage(pTab, iField)!=iField ); in sqlite3GenerateConstraintChecks()
2212 x = sqlite3TableColumnToStorage(pTab, iField) + regNewData + 1; in sqlite3GenerateConstraintChecks()
2214 VdbeComment((v, "%s", pTab->aCol[iField].zCnName)); in sqlite3GenerateConstraintChecks()
2266 assert( IsOrdinaryTable(pTab) ); in sqlite3GenerateConstraintChecks()
2272 0==sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0)) in sqlite3GenerateConstraintChecks()
2274 (0==pTab->u.tab.pFKey && 0==sqlite3FkReferences(pTab))) in sqlite3GenerateConstraintChecks()
2290 if( HasRowid(pTab) ){ in sqlite3GenerateConstraintChecks()
2308 VdbeComment((v, "%s.%s", pTab->zName, in sqlite3GenerateConstraintChecks()
2309 pTab->aCol[pPk->aiColumn[i]].zCnName)); in sqlite3GenerateConstraintChecks()
2332 x = sqlite3TableColumnToStorage(pTab, x); in sqlite3GenerateConstraintChecks()
2359 sqlite3UpsertDoUpdate(pParse, pUpsert, pTab, pIdx, iIdxCur+ix); in sqlite3GenerateConstraintChecks()
2383 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, in sqlite3GenerateConstraintChecks()
2474 sqlite3RowidConstraint(pParse, OE_Abort, pTab); in sqlite3GenerateConstraintChecks()
2482 if( HasRowid(pTab) ){ in sqlite3GenerateConstraintChecks()
2484 sqlite3VdbeAddOp3(v, OP_MakeRecord, regNewData+1, pTab->nNVCol, regRec); in sqlite3GenerateConstraintChecks()
2485 sqlite3SetMakeRecordP5(v, pTab); in sqlite3GenerateConstraintChecks()
2487 sqlite3TableAffinity(v, pTab, 0); in sqlite3GenerateConstraintChecks()
2502 void sqlite3SetMakeRecordP5(Vdbe *v, Table *pTab){ in sqlite3SetMakeRecordP5() argument
2507 if( pTab->pSchema->file_format<2 ) return; in sqlite3SetMakeRecordP5()
2509 for(i=pTab->nCol-1; i>0; i--){ in sqlite3SetMakeRecordP5()
2510 if( pTab->aCol[i].iDflt!=0 ) break; in sqlite3SetMakeRecordP5()
2511 if( pTab->aCol[i].colFlags & COLFLAG_PRIMKEY ) break; in sqlite3SetMakeRecordP5()
2526 Table *pTab, /* Table being updated */ in codeWithoutRowidPreupdate() argument
2532 assert( !HasRowid(pTab) ); in codeWithoutRowidPreupdate()
2535 sqlite3VdbeAddOp4(v, OP_Insert, iCur, regData, r, (char*)pTab, P4_TABLE); in codeWithoutRowidPreupdate()
2554 Table *pTab, /* the table into which we are inserting */ in sqlite3CompleteInsertion() argument
2575 assert( !IsView(pTab) ); /* This table is not a VIEW */ in sqlite3CompleteInsertion()
2576 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ in sqlite3CompleteInsertion()
2587 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ in sqlite3CompleteInsertion()
2591 codeWithoutRowidPreupdate(pParse, pTab, iIdxCur+i, aRegIdx[i]); in sqlite3CompleteInsertion()
2599 if( !HasRowid(pTab) ) return; in sqlite3CompleteInsertion()
2614 sqlite3VdbeAppendP4(v, pTab, P4_TABLE); in sqlite3CompleteInsertion()
2642 Table *pTab, /* Table to be opened */ in sqlite3OpenTableAndIndices() argument
2658 if( IsVirtual(pTab) ){ in sqlite3OpenTableAndIndices()
2665 iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in sqlite3OpenTableAndIndices()
2671 if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){ in sqlite3OpenTableAndIndices()
2672 sqlite3OpenTable(pParse, iDataCur, iDb, pTab, op); in sqlite3OpenTableAndIndices()
2674 sqlite3TableLock(pParse, iDb, pTab->tnum, op==OP_OpenWrite, pTab->zName); in sqlite3OpenTableAndIndices()
2677 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ in sqlite3OpenTableAndIndices()
2679 assert( pIdx->pSchema==pTab->pSchema ); in sqlite3OpenTableAndIndices()
2680 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ in sqlite3OpenTableAndIndices()