Lines Matching defs:pTab

22   Table *pTab,         /* The virtual table */
25 int *aXRef, /* Mapping from columns of pTab to entries in pChanges */
32 ** i-th column of table pTab. This routine sets the P4 parameter of the
60 void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int iReg){
61 assert( pTab!=0 );
62 if( !pTab->pSelect ){
65 Column *pCol = &pTab->aCol[i];
66 VdbeComment((v, "%s.%s", pTab->zName, pCol->zName));
67 assert( i<pTab->nCol );
74 if( iReg>=0 && pTab->aCol[i].affinity==SQLITE_AFF_REAL ){
96 Table *pTab; /* The table to be updated */
102 int iCur; /* VDBE Cursor number of pTab */
119 Trigger *pTrigger; /* List of triggers on pTab, if required */
141 pTab = sqlite3SrcListLookup(pParse, pTabList);
142 if( pTab==0 ) goto update_cleanup;
143 iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema);
149 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_UPDATE, pChanges, &tmask);
150 isView = pTab->pSelect!=0;
162 if( sqlite3ViewGetColumnNames(pParse, pTab) ){
165 if( sqlite3IsReadOnly(pParse, pTab, tmask) ){
168 aXRef = sqlite3DbMallocRaw(db, sizeof(int) * pTab->nCol );
170 for(i=0; i<pTab->nCol; i++) aXRef[i] = -1;
178 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
198 for(j=0; j<pTab->nCol; j++){
199 if( sqlite3StrICmp(pTab->aCol[j].zName, pChanges->a[i].zName)==0 ){
200 if( j==pTab->iPKey ){
208 if( j>=pTab->nCol ){
221 rc = sqlite3AuthCheck(pParse, SQLITE_UPDATE, pTab->zName,
222 pTab->aCol[j].zName, db->aDb[iDb].zName);
232 hasFK = sqlite3FkRequired(pParse, pTab, aXRef, chngRowid);
239 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){}
244 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
268 if( IsVirtual(pTab) ){
269 updateVirtualTable(pParse, pTabList, pTab, pChanges, pRowidExpr, aXRef,
281 pParse->nMem += pTab->nCol;
287 pParse->nMem += pTab->nCol;
291 sqlite3AuthContextPush(pParse, &sContext, pTab->zName);
299 sqlite3MaterializeView(pParse, pTab, pWhere, iCur);
343 if( !okOnePass ) sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenWrite);
348 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
355 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
392 u32 oldmask = (hasFK ? sqlite3FkOldmask(pParse, pTab) : 0);
394 pTrigger, pChanges, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onError
396 for(i=0; i<pTab->nCol; i++){
398 sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, i, regOld+i);
422 pParse, pTrigger, pChanges, 1, TRIGGER_BEFORE, pTab, onError
424 for(i=0; i<pTab->nCol; i++){
425 if( i==pTab->iPKey ){
440 sqlite3ColumnDefault(v, pTab, i, regNew+i);
449 sqlite3VdbeAddOp2(v, OP_Affinity, regNew, pTab->nCol);
450 sqlite3TableAffinityStr(v, pTab);
452 TRIGGER_BEFORE, pTab, regOldRowid, onError, addr);
467 for(i=0; i<pTab->nCol; i++){
468 if( aXRef[i]<0 && i!=pTab->iPKey ){
470 sqlite3ColumnDefault(v, pTab, i, regNew+i);
479 sqlite3GenerateConstraintChecks(pParse, pTab, iCur, regNewRowid,
484 sqlite3FkCheck(pParse, pTab, regOldRowid, 0);
489 sqlite3GenerateRowIndexDelete(pParse, pTab, iCur, aRegIdx);
498 sqlite3FkCheck(pParse, pTab, 0, regNewRowid);
502 sqlite3CompleteInsertion(pParse, pTab, iCur, regNewRowid, aRegIdx, 1, 0, 0);
508 sqlite3FkActions(pParse, pTab, pChanges, regOldRowid);
519 TRIGGER_AFTER, pTab, regOldRowid, onError, addr);
528 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
596 Table *pTab, /* The virtual table */
599 int *aXRef, /* Mapping from columns of pTab to entries in pChanges */
611 const char *pVTab = (const char*)sqlite3GetVTable(db, pTab);
622 assert( pTab->iPKey<0 );
623 for(i=0; i<pTab->nCol; i++){
627 pExpr = sqlite3Expr(db, TK_ID, pTab->aCol[i].zName);
638 sqlite3VdbeAddOp2(v, OP_OpenEphemeral, ephemTab, pTab->nCol+1+(pRowid!=0));
648 pParse->nMem += pTab->nCol+1;
652 for(i=0; i<pTab->nCol; i++){
655 sqlite3VtabMakeWritable(pParse, pTab);
656 sqlite3VdbeAddOp4(v, OP_VUpdate, 0, pTab->nCol+2, iReg, pVTab, P4_VTAB);