Home | History | Annotate | Download | only in dist

Lines Matching refs:pOp

47552   VdbeOp *pOp;
47563 pOp = &p->aOp[i];
47564 pOp->opcode = (u8)op;
47565 pOp->p5 = 0;
47566 pOp->p1 = p1;
47567 pOp->p2 = p2;
47568 pOp->p3 = p3;
47569 pOp->p4.p = 0;
47570 pOp->p4type = P4_NOTUSED;
47573 pOp->zComment = 0;
47577 pOp->cycles = 0;
47578 pOp->cnt = 0;
47684 ** Op *pOp;
47689 ** while( (pOp = opIterNext(&sIter)) ){
47690 ** // Do something with pOp
47769 Op *pOp;
47774 while( (pOp = opIterNext(&sIter))!=0 ){
47775 int opcode = pOp->opcode;
47778 || (opcode==OP_FkCounter && pOp->p1==0 && pOp->p2==1)
47781 && (pOp->p1==SQLITE_CONSTRAINT && pOp->p2==OE_Abort))
47814 Op *pOp;
47817 for(pOp=p->aOp, i=p->nOp-1; i>=0; i--, pOp++){
47818 u8 opcode = pOp->opcode;
47820 pOp->opflags = sqlite3OpcodeProperty[opcode];
47822 if( pOp->p5>nMaxArgs ) nMaxArgs = pOp->p5;
47823 }else if( opcode==OP_Transaction && pOp->p2!=0 ){
47827 if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2;
47831 assert( pOp[-1].opcode==OP_Integer );
47832 n = pOp[-1].p1;
47837 if( (pOp->opflags & OPFLG_JUMP)!=0 && pOp->p2<0 ){
47838 assert( -1-pOp->p2<p->nLabel );
47839 pOp->p2 = aLabel[-1-pOp->p2];
48038 Op *pOp;
48039 for(pOp=aOp; pOp<&aOp[nOp]; pOp++){
48040 freeP4(db, pOp->p4type, pOp->p4.p);
48042 sqlite3DbFree(db, pOp->zComment);
48084 VdbeOp *pOp = &p->aOp[addr];
48087 freeP4(db, pOp->p4type, pOp->p4.p);
48088 memset(pOp, 0, sizeof(pOp[0]));
48089 pOp->opcode = OP_Noop;
48090 pOp++;
48121 Op *pOp;
48137 pOp = &p->aOp[addr];
48138 freeP4(db, pOp->p4type, pOp->p4.p);
48139 pOp->p4.p = 0;
48143 pOp->p4.i = SQLITE_PTR_TO_INT(zP4);
48144 pOp->p4type = P4_INT32;
48146 pOp->p4.p = 0;
48147 pOp->p4type = P4_NOTUSED;
48155 pOp->p4.pKeyInfo = pKeyInfo;
48164 pOp->p4type = P4_KEYINFO;
48167 pOp->p4type = P4_NOTUSED;
48170 pOp->p4.p = (void*)zP4;
48171 pOp->p4type = P4_KEYINFO;
48173 pOp->p4.p = (void*)zP4;
48174 pOp->p4type = P4_VTAB;
48178 pOp->p4.p = (void*)zP4;
48179 pOp->p4type = (signed char)n;
48182 pOp->p4.z = sqlite3DbStrNDup(p->db, zP4, n);
48183 pOp->p4type = P4_DYNAMIC;
48264 static char *displayP4(Op *pOp, char *zTemp, int nTemp){
48267 switch( pOp->p4type ){
48271 KeyInfo *pKeyInfo = pOp->p4.pKeyInfo;
48299 CollSeq *pColl = pOp->p4.pColl;
48304 FuncDef *pDef = pOp->p4.pFunc;
48309 sqlite3_snprintf(nTemp, zTemp, "%lld", *pOp->p4.pI64);
48313 sqlite3_snprintf(nTemp, zTemp, "%d", pOp->p4.i);
48317 sqlite3_snprintf(nTemp, zTemp, "%.16g", *pOp->p4.pReal);
48321 Mem *pMem = pOp->p4.pMem;
48337 sqlite3_vtab *pVtab = pOp->p4.pVtab->pVtab;
48351 zP4 = pOp->p4.z;
48382 SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, Op *pOp){
48387 zP4 = displayP4(pOp, zPtr, sizeof(zPtr));
48389 sqlite3OpcodeName(pOp->opcode), pOp->p1, pOp->p2, pOp->p3, zP4, pOp->p5,
48391 pOp->zComment ? pOp->zComment : ""
48534 Op *pOp;
48538 pOp = &p->aOp[i];
48547 pOp = &apSub[j]->aOp[i];
48556 pMem->z = (char*)sqlite3OpcodeName(pOp->opcode); /* Opcode */
48568 if( pOp->p4type==P4_SUBPROGRAM ){
48572 if( apSub[j]==pOp->p4.pProgram ) break;
48576 apSub[nSub++] = pOp->p4.pProgram;
48584 pMem->u.i = pOp->p1; /* P1 */
48589 pMem->u.i = pOp->p2; /* P2 */
48595 pMem->u.i = pOp->p3; /* P3 */
48605 z = displayP4(pOp, pMem->z, 32);
48623 sqlite3_snprintf(3, pMem->z, "%.2x", pOp->p5); /* P5 */
48629 if( pOp->zComment ){
48631 pMem->z = pOp->zComment;
48657 VdbeOp *pOp;
48659 pOp = &p->aOp[0];
48660 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
48661 const char *z = pOp->p4.z;
48674 VdbeOp *pOp;
48677 pOp = &p->aOp[0];
48678 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
48681 sqlite3_snprintf(sizeof(z), z, "%s", pOp->p4.z);
51640 Op *pOp;
51647 for(j=0, pOp=p->aOp; j<p->nOp; j++, pOp++){
51648 if( pOp->opcode==OP_Variable ){
51649 assert( pOp->p1>0 && pOp->p1<=p->nVar );
51650 p->azVar[pOp->p1-1] = pOp->p4.z;
52556 Op *pOp; /* Current operation */
53017 pOp = &aOp[pc];
53027 sqlite3VdbePrintOp(p->trace, pc, pOp);
53077 assert( pOp->opflags==sqlite3OpcodeProperty[pOp->opcode] );
53078 if( pOp->opflags & OPFLG_OUT2_PRERELEASE ){
53079 assert( pOp->p2>0 );
53080 assert( pOp->p2<=p->nMem );
53081 pOut = &aMem[pOp->p2];
53088 if( (pOp->opflags & OPFLG_IN1)!=0 ){
53089 assert( pOp->p1>0 );
53090 assert( pOp->p1<=p->nMem );
53091 REGISTER_TRACE(pOp->p1, &aMem[pOp->p1]);
53093 if( (pOp->opflags & OPFLG_IN2)!=0 ){
53094 assert( pOp->p2>0 );
53095 assert( pOp->p2<=p->nMem );
53096 REGISTER_TRACE(pOp->p2, &aMem[pOp->p2]);
53098 if( (pOp->opflags & OPFLG_IN3)!=0 ){
53099 assert( pOp->p3>0 );
53100 assert( pOp->p3<=p->nMem );
53101 REGISTER_TRACE(pOp->p3, &aMem[pOp->p3]);
53103 if( (pOp->opflags & OPFLG_OUT2)!=0 ){
53104 assert( pOp->p2>0 );
53105 assert( pOp->p2<=p->nMem );
53107 if( (pOp->opflags & OPFLG_OUT3)!=0 ){
53108 assert( pOp->p3>0 );
53109 assert( pOp->p3<=p->nMem );
53113 switch( pOp->opcode ){
53159 pc = pOp->p2 - 1;
53169 pIn1 = &aMem[pOp->p1];
53173 REGISTER_TRACE(pOp->p1, pIn1);
53174 pc = pOp->p2 - 1;
53183 pIn1 = &aMem[pOp->p1];
53197 pIn1 = &aMem[pOp->p1];
53202 REGISTER_TRACE(pOp->p1, pIn1);
53214 pIn3 = &aMem[pOp->p3];
53239 if( pOp->p1==SQLITE_OK && p->pFrame ){
53246 if( pOp->p2==OE_Ignore ){
53259 p->rc = pOp->p1;
53260 p->errorAction = (u8)pOp->p2;
53262 if( pOp->p4.z ){
53264 sqlite3SetString(&p->zErrMsg, db, "%s", pOp->p4.z);
53266 sqlite3_log(pOp->p1, "abort at %d in [%s]: %s", pc, p->zSql, pOp->p4.z);
53269 sqlite3_log(pOp->p1, "constraint failed at %d in [%s]", pc, p->zSql);
53288 pOut->u.i = pOp->p1;
53298 assert( pOp->p4.pI64!=0 );
53299 pOut->u.i = *pOp->p4.pI64;
53310 assert( !sqlite3IsNaN(*pOp->p4.pReal) );
53311 pOut->r = *pOp->p4.pReal;
53321 assert( pOp->p4.z!=0 );
53322 pOp->opcode = OP_String;
53323 pOp->p1 = sqlite3Strlen30(pOp->p4.z);
53327 rc = sqlite3VdbeMemSetStr(pOut, pOp->p4.z, -1, SQLITE_UTF8, SQLITE_STATIC);
53335 if( pOp->p4type==P4_DYNAMIC ){
53336 sqlite3DbFree(db, pOp->p4.z);
53338 pOp->p4type = P4_DYNAMIC;
53339 pOp->p4.z = pOut->z;
53340 pOp->p1 = pOut->n;
53343 if( pOp->p1>db->aLimit[SQLITE_LIMIT_LENGTH] ){
53354 assert( pOp->p4.z!=0 );
53356 pOut->z = pOp->p4.z;
53357 pOut->n = pOp->p1;
53383 assert( pOp->p1 <= SQLITE_MAX_LENGTH );
53384 sqlite3VdbeMemSetStr(pOut, pOp->p4.z, pOp->p1, 0, 0);
53406 u.ab.p1 = pOp->p1 - 1;
53407 u.ab.p2 = pOp->p2;
53408 u.ab.n = pOp->p3;
53411 assert( pOp->p4.z==0 || pOp->p3==1 || pOp->p3==0 );
53442 u.ac.n = pOp->p3;
53443 u.ac.p1 = pOp->p1;
53444 u.ac.p2 = pOp->p2;
53472 pIn1 = &aMem[pOp->p1];
53473 pOut = &aMem[pOp->p2];
53477 REGISTER_TRACE(pOp->p2, pOut);
53494 pIn1 = &aMem[pOp->p1];
53495 pOut = &aMem[pOp->p2];
53498 REGISTER_TRACE(pOp->p2, pOut);
53515 assert( p->nResColumn==pOp->p2 );
53516 assert( pOp->p1>0 );
53517 assert( pOp->p1+pOp->p2<=p->nMem+1 );
53556 u.ad.pMem = p->pResultSet = &aMem[pOp->p1];
53557 for(u.ad.i=0; u.ad.i<pOp->p2; u.ad.i++){
53560 REGISTER_TRACE(pOp->p1+u.ad.i, &u.ad.pMem[u.ad.i]);
53588 pIn1 = &aMem[pOp->p1];
53589 pIn2 = &aMem[pOp->p2];
53590 pOut = &aMem[pOp->p3];
53666 pIn1 = &aMem[pOp->p1];
53668 pIn2 = &aMem[pOp->p2];
53670 pOut = &aMem[pOp->p3];
53676 switch( pOp->opcode ){
53705 switch( pOp->opcode ){
53752 assert( pOp->p4type==P4_COLLSEQ );
53781 u.ag.n = pOp->p5;
53785 assert( u.ag.n==0 || (pOp->p2>0 && pOp->p2+u.ag.n<=p->nMem+1) );
53786 assert( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+u.ag.n );
53787 u.ag.pArg = &aMem[pOp->p2];
53791 REGISTER_TRACE(pOp->p2, u.ag.pArg);
53794 assert( pOp->p4type==P4_FUNCDEF || pOp->p4type==P4_VDBEFUNC );
53795 if( pOp->p4type==P4_FUNCDEF ){
53796 u.ag.ctx.pFunc = pOp->p4.pFunc;
53799 u.ag.ctx.pVdbeFunc = (VdbeFunc*)pOp->p4.pVdbeFunc;
53803 assert( pOp->p3>0 && pOp->p3<=p->nMem );
53804 pOut = &aMem[pOp->p3];
53819 assert( pOp>aOp );
53820 assert( pOp[-1].p4type==P4_COLLSEQ );
53821 assert( pOp[-1].opcode==OP_CollSeq );
53822 u.ag.ctx.pColl = pOp[-1].p4.pColl;
53839 sqlite3VdbeDeleteAuxData(u.ag.ctx.pVdbeFunc, pOp->p1);
53840 pOp->p4.pVdbeFunc = u.ag.ctx.pVdbeFunc;
53841 pOp->p4type = P4_VDBEFUNC;
53856 REGISTER_TRACE(pOp->p3, pOut);
53896 pIn1 = &aMem[pOp->p1];
53897 pIn2 = &aMem[pOp->p2];
53898 pOut = &aMem[pOp->p3];
53905 switch( pOp->opcode ){
53909 default: assert( pOp->opcode==OP_ShiftRight );
53925 pIn1 = &aMem[pOp->p1];
53927 pIn1->u.i += pOp->p2;
53939 pIn1 = &aMem[pOp->p1];
53942 if( pOp->p2==0 ){
53946 pc = pOp->p2 - 1;
53964 pIn1 = &aMem[pOp->p1];
53982 pIn1 = &aMem[pOp->p1];
54004 pIn1 = &aMem[pOp->p1];
54028 pIn1 = &aMem[pOp->p1];
54046 pIn1 = &aMem[pOp->p1];
54064 pIn1 = &aMem[pOp->p1];
54155 pIn1 = &aMem[pOp->p1];
54156 pIn3 = &aMem[pOp->p3];
54159 if( pOp->p5 & SQLITE_NULLEQ ){
54164 assert( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne );
54171 if( pOp->p5 & SQLITE_STOREP2 ){
54172 pOut = &aMem[pOp->p2];
54174 REGISTER_TRACE(pOp->p2, pOut);
54175 }else if( pOp->p5 & SQLITE_JUMPIFNULL ){
54176 pc = pOp->p2-1;
54182 u.ai.affinity = pOp->p5 & SQLITE_AFF_MASK;
54189 assert( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 );
54192 u.ai.res = sqlite3MemCompare(pIn3, pIn1, pOp->p4.pColl);
54194 switch( pOp->opcode ){
54203 if( pOp->p5 & SQLITE_STOREP2 ){
54204 pOut = &aMem[pOp->p2];
54207 REGISTER_TRACE(pOp->p2, pOut);
54209 pc = pOp->p2-1;
54224 assert( pOp->p4type==P4_INTARRAY );
54225 assert( pOp->p4.ai );
54226 aPermute = pOp->p4.ai;
54256 u.aj.n = pOp->p3;
54257 u.aj.pKeyInfo = pOp->p4.pKeyInfo;
54260 u.aj.p1 = pOp->p1;
54261 u.aj.p2 = pOp->p2;
54298 pc = pOp->p1 - 1;
54300 pc = pOp->p2 - 1;
54302 pc = pOp->p3 - 1;
54332 pIn1 = &aMem[pOp->p1];
54338 pIn2 = &aMem[pOp->p2];
54344 if( pOp->opcode==OP_And ){
54351 pOut = &aMem[pOp->p3];
54368 pIn1 = &aMem[pOp->p1];
54369 pOut = &aMem[pOp->p2];
54385 pIn1 = &aMem[pOp->p1];
54386 pOut = &aMem[pOp->p2];
54412 pIn1 = &aMem[pOp->p1];
54414 u.al.c = pOp->p3;
54421 if( pOp->opcode==OP_IfNot ) u.al.c = !u.al.c;
54424 pc = pOp->p2-1;
54434 pIn1 = &aMem[pOp->p1];
54436 pc = pOp->p2 - 1;
54446 pIn1 = &aMem[pOp->p1];
54448 pc = pOp->p2 - 1;
54499 u.am.p1 = pOp->p1;
54500 u.am.p2 = pOp->p2;
54504 assert( pOp->p3>0 && pOp->p3<=p->nMem );
54505 u.am.pDest = &aMem[pOp->p3];
54555 u.am.pC->cacheStatus = (pOp->p5&OPFLAG_CLEARCACHE) ? CACHE_STALE : p->cacheCtr;
54727 if( pOp->p4type==P4_MEM ){
54728 sqlite3VdbeMemShallowCopy(u.am.pDest, pOp->p4.pMem, MEM_Static);
54753 REGISTER_TRACE(pOp->p3, u.am.pDest);
54771 u.an.zAffinity = pOp->p4.z;
54773 assert( u.an.zAffinity[pOp->p2]==0 );
54774 pIn1 = &aMem[pOp->p1];
54840 u.ao.nField = pOp->p1;
54841 u.ao.zAffinity = pOp->p4.z;
54842 assert( u.ao.nField>0 && pOp->p2>0 && pOp->p2+u.ao.nField<=p->nMem+1 );
54844 u.ao.nField = pOp->p2;
54882 ** the new record. The output register (pOp->p3) is not allowed to
54886 assert( pOp->p3<pOp->p1 || pOp->p3>=pOp->p1+pOp->p2 );
54887 pOut = &aMem[pOp->p3];
54904 assert( pOp->p3>0 && pOp->p3<=p->nMem );
54913 REGISTER_TRACE(pOp->p3, pOut);
54930 u.ap.pCrsr = p->apCsr[pOp->p1]->pCursor;
54959 u.aq.p1 = pOp->p1;
54960 u.aq.zName = pOp->p4.z;
55108 u.ar.desiredAutoCommit = pOp->p1;
55109 u.ar.iRollback = pOp->p2;
55201 assert( pOp->p1>=0 && pOp->p1<db->nDb );
55202 assert( (p->btreeMask & (1<<pOp->p1))!=0 );
55203 u.as.pBt = db->aDb[pOp->p1].pBt;
55206 rc = sqlite3BtreeBeginTrans(u.as.pBt, pOp->p2);
55216 if( pOp->p2 && p->usesStmtJournal
55255 u.at.iDb = pOp->p1;
55256 u.at.iCookie = pOp->p3;
55257 assert( pOp->p3<SQLITE_N_BTREE_META );
55281 assert( pOp->p2<SQLITE_N_BTREE_META );
55282 assert( pOp->p1>=0 && pOp->p1<db->nDb );
55283 assert( (p->btreeMask & (1<<pOp->p1))!=0 );
55284 u.au.pDb = &db->aDb[pOp->p1];
55286 pIn3 = &aMem[pOp->p3];
55289 rc = sqlite3BtreeUpdateMeta(u.au.pDb->pBt, pOp->p2, (int)pIn3->u.i);
55290 if( pOp->p2==BTREE_SCHEMA_VERSION ){
55294 }else if( pOp->p2==BTREE_FILE_FORMAT ){
55298 if( pOp->p1==1 ){
55328 assert( pOp->p1>=0 && pOp->p1<db->nDb );
55329 assert( (p->btreeMask & (1<<pOp->p1))!=0 );
55330 u.av.pBt = db->aDb[pOp->p1].pBt;
55336 if( u.av.iMeta!=pOp->p2 ){
55352 if( db->aDb[pOp->p1].pSchema->schema_cookie!=u.av.iMeta ){
55353 sqlite3ResetInternalSchema(db, pOp->p1);
55431 u.aw.p2 = pOp->p2;
55432 u.aw.iDb = pOp->p3;
55438 if( pOp->opcode==OP_OpenWrite ){
55446 if( pOp->p5 ){
55461 if( pOp->p4type==P4_KEYINFO ){
55462 u.aw.pKeyInfo = pOp->p4.pKeyInfo;
55465 }else if( pOp->p4type==P4_INT32 ){
55466 u.aw.nField = pOp->p4.i;
55468 assert( pOp->p1>=0 );
55469 u.aw.pCur = allocateCursor(p, pOp->p1, u.aw.nField, u.aw.iDb, 1);
55489 u.aw.pCur->isTable = pOp->p4type!=P4_KEYINFO;
55523 assert( pOp->p1>=0 );
55524 u.ax.pCx = allocateCursor(p, pOp->p1, pOp->p2, -1, 1);
55538 if( pOp->p4.pKeyInfo ){
55540 assert( pOp->p4type==P4_KEYINFO );
55545 (KeyInfo*)pOp->p4.z, u.ax.pCx->pCursor);
55546 u.ax.pCx->pKeyInfo = pOp->p4.pKeyInfo;
55579 assert( pOp->p1>=0 );
55580 u.ay.pCx = allocateCursor(p, pOp->p1, pOp->p3, -1, 0);
55583 u.ay.pCx->pseudoTableReg = pOp->p2;
55595 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
55596 sqlite3VdbeFreeCursor(p, p->apCsr[pOp->p1]);
55597 p->apCsr[pOp->p1] = 0;
55666 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
55667 assert( pOp->p2!=0 );
55668 u.az.pC = p->apCsr[pOp->p1];
55675 u.az.oc = pOp->opcode;
55681 pIn3 = &aMem[pOp->p3];
55692 pc = pOp->p2 - 1;
55715 pc = pOp->p2 - 1;
55736 u.az.nField = pOp->p4.i;
55737 assert( pOp->p4type==P4_INT32 );
55755 u.az.r.aMem = &aMem[pOp->p3];
55789 assert( pOp->p2>0 );
55791 pc = pOp->p2 - 1;
55798 pc = pOp->p2 - 1;
55817 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
55818 u.ba.pC = p->apCsr[pOp->p1];
55823 pIn2 = &aMem[pOp->p2];
55872 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
55873 assert( pOp->p4type==P4_INT32 );
55874 u.bb.pC = p->apCsr[pOp->p1];
55876 pIn3 = &aMem[pOp->p3];
55880 if( pOp->p4.i>0 ){
55882 u.bb.r.nField = (u16)pOp->p4.i;
55897 if( pOp->p4.i==0 ){
55907 if( pOp->opcode==OP_Found ){
55908 if( u.bb.alreadyExists ) pc = pOp->p2 - 1;
55910 if( !u.bb.alreadyExists ) pc = pOp->p2 - 1;
55952 pIn3 = &aMem[pOp->p3];
55953 u.bc.aMx = &aMem[pOp->p4.i];
55955 assert( pOp->p4type==P4_INT32 );
55956 assert( pOp->p4.i>0 && pOp->p4.i<=p->nMem );
55957 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
55960 u.bc.pCx = p->apCsr[pOp->p1];
55970 pc = pOp->p2 - 1;
55993 pc = pOp->p2 - 1;
56023 pIn3 = &aMem[pOp->p3];
56025 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56026 u.bd.pC = p->apCsr[pOp->p1];
56041 pc = pOp->p2 - 1;
56049 pc = pOp->p2 - 1;
56064 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56065 assert( p->apCsr[pOp->p1]!=0 );
56066 pOut->u.i = p->apCsr[pOp->p1]->seqCount++;
56097 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56098 u.be.pC = p->apCsr[pOp->p1];
56151 if( pOp->p3 ){
56153 assert( pOp->p3>0 );
56157 assert( pOp->p3<=u.be.pFrame->nMem );
56158 u.be.pMem = &u.be.pFrame->aMem[pOp->p3];
56161 assert( pOp->p3<=p->nMem );
56162 u.be.pMem = &aMem[pOp->p3];
56165 REGISTER_TRACE(pOp->p3, u.be.pMem);
56187 assert( pOp->p3==0 ); /* We cannot be in random rowid mode if this is
56272 u.bf.pData = &aMem[pOp->p2];
56273 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56274 u.bf.pC = p->apCsr[pOp->p1];
56279 REGISTER_TRACE(pOp->p2, u.bf.pData);
56281 if( pOp->opcode==OP_Insert ){
56282 u.bf.pKey = &aMem[pOp->p3];
56284 REGISTER_TRACE(pOp->p3, u.bf.pKey);
56287 assert( pOp->opcode==OP_InsertInt );
56288 u.bf.iKey = pOp->p3;
56291 if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;
56292 if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = u.bf.iKey;
56299 u.bf.seekResult = ((pOp->p5 & OPFLAG_USESEEKRESULT) ? u.bf.pC->seekResult : 0);
56308 pOp->p5 & OPFLAG_APPEND, u.bf.seekResult
56315 if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
56317 u.bf.zTbl = pOp->p4.z;
56318 u.bf.op = ((pOp->p5 & OPFLAG_ISUPDATE) ? SQLITE_UPDATE : SQLITE_INSERT);
56353 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56354 u.bg.pC = p->apCsr[pOp->p1];
56361 if( db->xUpdateCallback && pOp->p4.z ){
56383 if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
56385 const char *zTbl = pOp->p4.z;
56389 if( pOp->p2 & OPFLAG_NCHANGE ) p->nChange++;
56434 pOut = &aMem[pOp->p2];
56437 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56438 u.bh.pC = p->apCsr[pOp->p1];
56439 assert( u.bh.pC->isTable || pOp->opcode==OP_RowKey );
56440 assert( u.bh.pC->isIndex || pOp->opcode==OP_RowData );
56504 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56505 u.bi.pC = p->apCsr[pOp->p1];
56549 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56550 u.bj.pC = p->apCsr[pOp->p1];
56575 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56576 u.bk.pC = p->apCsr[pOp->p1];
56588 if( pOp->p2>0 && u.bk.res ){
56589 pc = pOp->p2 - 1;
56630 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56631 u.bl.pC = p->apCsr[pOp->p1];
56643 assert( pOp->p2>0 && pOp->p2<p->nOp );
56645 pc = pOp->p2 - 1;
56679 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56680 u.bm.pC = p->apCsr[pOp->p1];
56691 rc = pOp->opcode==OP_Next ? sqlite3BtreeNext(u.bm.pCrsr, &u.bm.res) :
56696 pc = pOp->p2 - 1;
56697 if( pOp->p5 ) p->aCounter[pOp->p5-1]++;
56726 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56727 u.bn.pC = p->apCsr[pOp->p1];
56729 pIn2 = &aMem[pOp->p2];
56738 rc = sqlite3BtreeInsert(u.bn.pCrsr, u.bn.zKey, u.bn.nKey, "", 0, 0, pOp->p3,
56739 ((pOp->p5 & OPFLAG_USESEEKRESULT) ? u.bn.pC->seekResult : 0)
56762 assert( pOp->p3>0 );
56763 assert( pOp->p2>0 && pOp->p2+pOp->p3<=p->nMem+1 );
56764 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56765 u.bo.pC = p->apCsr[pOp->p1];
56770 u.bo.r.nField = (u16)pOp->p3;
56772 u.bo.r.aMem = &aMem[pOp->p2];
56798 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56799 u.bp.pC = p->apCsr[pOp->p1];
56854 assert( pOp->p1>=0 && pOp->p1<p->nCursor );
56855 u.bq.pC = p->apCsr[pOp->p1];
56859 assert( pOp->p5==0 || pOp->p5==1 );
56860 assert( pOp->p4type==P4_INT32 );
56862 u.bq.r.nField = (u16)pOp->p4.i;
56863 if( pOp->p5 ){
56868 u.bq.r.aMem = &aMem[pOp->p3];
56870 if( pOp->opcode==OP_IdxLT ){
56873 assert( pOp->opcode==OP_IdxGE );
56877 pc = pOp->p2 - 1 ;
56925 u.br.iDb = pOp->p3;
56928 rc = sqlite3BtreeDropTable(db->aDb[u.br.iDb].pBt, pOp->p1, &u.br.iMoved);
56933 sqlite3RootPageMoved(&db->aDb[u.br.iDb], u.br.iMoved, pOp->p1);
56965 assert( (p->btreeMask & (1<<pOp->p2))!=0 );
56967 db->aDb[pOp->p2].pBt, pOp->p1, (pOp->p3 ? &u.bs.nChange : 0)
56969 if( pOp->p3 ){
56971 if( pOp->p3>0 ){
56972 aMem[pOp->p3].u.i += u.bs.nChange;
57009 assert( pOp->p1>=0 && pOp->p1<db->nDb );
57010 assert( (p->btreeMask & (1<<pOp->p1))!=0 );
57011 u.bt.pDb = &db->aDb[pOp->p1];
57013 if( pOp->opcode==OP_CreateTable ){
57044 u.bu.iDb = pOp->p1;
57047 /* If pOp->p2 is 0, then this opcode is being executed to read a
57070 if( pOp->p2 || DbHasProperty(db, u.bu.iDb, DB_SchemaLoaded) ){
57073 u.bu.initData.iDb = pOp->p1;
57077 db->aDb[u.bu.iDb].zName, u.bu.zMaster, pOp->p4.z);
57106 assert( pOp->p1>=0 && pOp->p1<db->nDb );
57107 rc = sqlite3AnalysisLoad(db, pOp->p1);
57120 sqlite3UnlinkAndDeleteTable(db, pOp->p1, pOp->p4.z);
57132 sqlite3UnlinkAndDeleteIndex(db, pOp->p1, pOp->p4.z);
57144 sqlite3UnlinkAndDeleteTrigger(db, pOp->p1, pOp->p4.z);
57180 u.bv.nRoot = pOp->p2;
57184 assert( pOp->p3>0 && pOp->p3<=p->nMem );
57185 u.bv.pnErr = &aMem[pOp->p3];
57188 pIn1 = &aMem[pOp->p1];
57193 assert( pOp->p5<db->nDb );
57194 assert( (p->btreeMask & (1<<pOp->p5))!=0 );
57195 u.bv.z = sqlite3BtreeIntegrityCheck(db->aDb[pOp->p5].pBt, u.bv.aRoot, u.bv.nRoot,
57221 pIn1 = &aMem[pOp->p1];
57222 pIn2 = &aMem[pOp->p2];
57243 pIn1 = &aMem[pOp->p1];
57249 pc = pOp->p2 - 1;
57252 sqlite3VdbeMemSetInt64(&aMem[pOp->p3], u.bw.val);
57286 pIn1 = &aMem[pOp->p1];
57287 pIn3 = &aMem[pOp->p3];
57288 u.bx.iSet = pOp->p4.i;
57299 assert( pOp->p4type==P4_INT32 );
57306 pc = pOp->p2 - 1;
57344 u.by.pProgram = pOp->p4.pProgram;
57345 u.by.pRt = &aMem[pOp->p3];
57359 if( pOp->p5 ){
57452 u.bz.pIn = &u.bz.pFrame->aMem[pOp->p1 + u.bz.pFrame->aOp[u.bz.pFrame->pc].p1];
57468 if( pOp->p1 ){
57469 db->nDeferredCons += pOp->p2;
57471 p->nFkConstraint += pOp->p2;
57488 if( pOp->p1 ){
57489 if( db->nDeferredCons==0 ) pc = pOp->p2-1;
57491 if( p->nFkConstraint==0 ) pc = pOp->p2-1;
57515 u.ca.pIn1 = &u.ca.pFrame->aMem[pOp->p1];
57517 u.ca.pIn1 = &aMem[pOp->p1];
57520 pIn2 = &aMem[pOp->p2];
57537 pIn1 = &aMem[pOp->p1];
57540 pc = pOp->p2 - 1;
57553 pIn1 = &aMem[pOp->p1];
57556 pc = pOp->p2 - 1;
57570 pIn1 = &aMem[pOp->p1];
57572 pIn1->u.i += pOp->p3;
57574 pc = pOp->p2 - 1;
57599 u.cb.n = pOp->p5;
57601 u.cb.pRec = &aMem[pOp->p2];
57608 u.cb.ctx.pFunc = pOp->p4.pFunc;
57609 assert( pOp->p3>0 && pOp->p3<=p->nMem );
57610 u.cb.ctx.pMem = u.cb.pMem = &aMem[pOp->p3];
57620 assert( pOp>p->aOp );
57621 assert( pOp[-1].p4type==P4_COLLSEQ );
57622 assert( pOp[-1].opcode==OP_CollSeq );
57623 u.cb.ctx.pColl = pOp[-1].p4.pColl;
57650 assert( pOp->p1>0 && pOp->p1<=p->nMem );
57651 u.cc.pMem = &aMem[pOp->p1];
57653 rc = sqlite3VdbeMemFinalize(u.cc.pMem, pOp->p4.pFunc);
57691 assert( pOp->p1>=0 && pOp->p1<db->nDb );
57692 assert( (p->btreeMask & (1<<pOp->p1))!=0 );
57693 u.cd.pBt = db->aDb[pOp->p1].pBt;
57696 pc = pOp->p2 - 1;
57713 if( !pOp->p1 ){
57737 u8 isWriteLock = (u8)pOp->p3;
57739 int p1 = pOp->p1;
57743 rc = sqlite3BtreeLockTable(db->aDb[p1].pBt, pOp->p2, isWriteLock);
57745 const char *z = pOp->p4.z;
57767 u.ce.pVTab = pOp->p4.pVtab;
57785 rc = sqlite3VtabCallCreate(db, pOp->p1, pOp->p4.z, &p->zErrMsg);
57798 rc = sqlite3VtabCallDestroy(db, pOp->p1, pOp->p4.z);
57821 u.cf.pVtab = pOp->p4.pVtab->pVtab;
57833 u.cf.pCur = allocateCursor(p, pOp->p1, 0, -1, 0);
57880 u.cg.pQuery = &aMem[pOp->p3];
57882 u.cg.pCur = p->apCsr[pOp->p1];
57883 REGISTER_TRACE(pOp->p3, u.cg.pQuery);
57904 rc = u.cg.pModule->xFilter(u.cg.pVtabCursor, u.cg.iQuery, pOp->p4.z, u.cg.nArg, u.cg.apArg);
57914 pc = pOp->p2 - 1;
57938 VdbeCursor *pCur = p->apCsr[pOp->p1];
57940 assert( pOp->p3>0 && pOp->p3<=p->nMem );
57941 u.ch.pDest = &aMem[pOp->p3];
57959 rc = u.ch.pModule->xColumn(pCur->pVtabCursor, &u.ch.sContext, pOp->p2);
57973 REGISTER_TRACE(pOp->p3, u.ch.pDest);
57999 u.ci.pCur = p->apCsr[pOp->p1];
58026 pc = pOp->p2 - 1;
58045 u.cj.pVtab = pOp->p4.pVtab->pVtab;
58046 u.cj.pName = &aMem[pOp->p1];
58048 REGISTER_TRACE(pOp->p1, u.cj.pName);
58094 u.ck.pVtab = pOp->p4.pVtab->pVtab;
58096 u.ck.nArg = pOp->p2;
58097 assert( pOp->p4type==P4_VTAB );
58100 u.ck.pX = &aMem[pOp->p3];
58110 if( rc==SQLITE_OK && pOp->p1 ){
58132 u.cl.p1 = pOp->p1;
58156 u.cm.zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql);
58200 pOp->cycles += elapsed;
58201 pOp->cnt++;
58220 if( pOp->opflags & (OPFLG_OUT2_PRERELEASE|OPFLG_OUT2) ){
58221 registerTrace(p->trace, pOp->p2, &aMem[pOp->p2]);
58223 if( pOp->opflags & OPFLG_OUT3 ){
58224 registerTrace(p->trace, pOp->p3, &aMem[pOp->p3]);
62543 ** corresponding pop occurs.
62700 VdbeOp *pOp;
62706 pOp = sqlite3VdbeGetOp(v, -1);
62707 assert( pOp!=0 );
62708 if( pOp->opcode==OP_SCopy && pOp->p1>=iReg && pOp->p1<iReg+nReg ){
62709 pOp->opcode = OP_Copy;
62853 VdbeOp *pOp;
62858 && (pOp = sqlite3VdbeGetOp(v, -1))->opcode==OP_Variable
62859 && pOp->p1+pOp->p3==pExpr->iColumn
62860 && pOp->p2+pOp->p3==target
62861 && pOp->p4.z==0
62868 pOp->p3++;
66460 ** Pop an authorization context that was previously pushed
74130 VdbeOp *pOp = sqlite3VdbeGetOp(v, i);
74131 assert( pOp!=0 );
74132 if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){
74134 int tnum = pOp->p2;
74145 if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){
74146 assert( pOp->p4.pVtab!=0 );
74147 assert( pOp->p4type==P4_VTAB );
74877 VdbeOp *pOp;
74879 pOp = sqlite3VdbeGetOp(v, -1);
74880 if( ALWAYS(pOp) && pOp->opcode==OP_Null && !IsVirtual(pTab) ){
74882 pOp->opcode = OP_NewRowid;
74883 pOp->p1 = baseCur;
74884 pOp->p2 = regRowid;
74885 pOp->p3 = regAutoinc;
90823 VdbeOp *pOp;
90827 pOp = sqlite3VdbeGetOp(v, pWInfo->iTop);
90829 for(k=pWInfo->iTop; k<last; k++, pOp++){
90830 if( pOp->p1!=pLevel->iTabCur ) continue;
90831 if( pOp->opcode==OP_Column ){
90833 if( pOp->p2==pIdx->aiColumn[j] ){
90834 pOp->p2 = j;
90835 pOp->p1 = pLevel->iIdxCur;
90841 }else if( pOp->opcode==OP_Rowid ){
90842 pOp->p1 = pLevel->iIdxCur;
90843 pOp->opcode = OP_IdxRowid;
92312 ** Pop the parser's stack once.
92896 int yysize; /* Amount to pop the stack */