Lines Matching refs:pOp

134 static void test_trace_breakpoint(int pc, Op *pOp, Vdbe *v){  in test_trace_breakpoint()  argument
180 # define VdbeBranchTaken(I,M) vdbeTakeBranch(pOp->iSrcLine,I,M)
660 static Mem *out2Prerelease(Vdbe *p, VdbeOp *pOp){ in out2Prerelease() argument
662 assert( pOp->p2>0 ); in out2Prerelease()
663 assert( pOp->p2<=(p->nMem+1 - p->nCursor) ); in out2Prerelease()
664 pOut = &p->aMem[pOp->p2]; in out2Prerelease()
678 static u64 filterHash(const Mem *aMem, const Op *pOp){ in filterHash() argument
682 assert( pOp->p4type==P4_INT32 ); in filterHash()
683 for(i=pOp->p3, mx=i+pOp->p4.i; i<mx; i++){ in filterHash()
719 Op *pOp = aOp; /* Current operation */ in sqlite3VdbeExec() local
798 for(pOp=&aOp[p->pc]; 1; pOp++){ in sqlite3VdbeExec()
803 assert( pOp>=aOp && pOp<&aOp[p->nOp]); in sqlite3VdbeExec()
809 if( p->anExec ) p->anExec[(int)(pOp-aOp)]++; in sqlite3VdbeExec()
816 sqlite3VdbePrintOp(stdout, (int)(pOp - aOp), pOp); in sqlite3VdbeExec()
817 test_trace_breakpoint((int)(pOp - aOp),pOp,p); in sqlite3VdbeExec()
837 u8 opProperty = sqlite3OpcodeProperty[pOp->opcode]; in sqlite3VdbeExec()
839 assert( pOp->p1>0 ); in sqlite3VdbeExec()
840 assert( pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
841 assert( memIsValid(&aMem[pOp->p1]) ); in sqlite3VdbeExec()
842 assert( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p1]) ); in sqlite3VdbeExec()
843 REGISTER_TRACE(pOp->p1, &aMem[pOp->p1]); in sqlite3VdbeExec()
846 assert( pOp->p2>0 ); in sqlite3VdbeExec()
847 assert( pOp->p2<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
848 assert( memIsValid(&aMem[pOp->p2]) ); in sqlite3VdbeExec()
849 assert( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p2]) ); in sqlite3VdbeExec()
850 REGISTER_TRACE(pOp->p2, &aMem[pOp->p2]); in sqlite3VdbeExec()
853 assert( pOp->p3>0 ); in sqlite3VdbeExec()
854 assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
855 assert( memIsValid(&aMem[pOp->p3]) ); in sqlite3VdbeExec()
856 assert( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p3]) ); in sqlite3VdbeExec()
857 REGISTER_TRACE(pOp->p3, &aMem[pOp->p3]); in sqlite3VdbeExec()
860 assert( pOp->p2>0 ); in sqlite3VdbeExec()
861 assert( pOp->p2<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
862 memAboutToChange(p, &aMem[pOp->p2]); in sqlite3VdbeExec()
865 assert( pOp->p3>0 ); in sqlite3VdbeExec()
866 assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
867 memAboutToChange(p, &aMem[pOp->p3]); in sqlite3VdbeExec()
872 pOrigOp = pOp; in sqlite3VdbeExec()
875 switch( pOp->opcode ){ in sqlite3VdbeExec()
930 if( pOp->p5 ){ in sqlite3VdbeExec()
931 assert( pOp->p2 < (int)(pOp - aOp) ); in sqlite3VdbeExec()
932 assert( pOp->p2 > 1 ); in sqlite3VdbeExec()
933 pOp = &aOp[pOp->p2 - 2]; in sqlite3VdbeExec()
934 assert( pOp[1].opcode==OP_ReleaseReg ); in sqlite3VdbeExec()
940 pOp = &aOp[pOp->p2 - 1]; in sqlite3VdbeExec()
981 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
982 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
986 pIn1->u.i = (int)(pOp-aOp); in sqlite3VdbeExec()
987 REGISTER_TRACE(pOp->p1, pIn1); in sqlite3VdbeExec()
1014 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1016 if( pOp->p3 ){ VdbeBranchTaken(1, 2); } in sqlite3VdbeExec()
1017 pOp = &aOp[pIn1->u.i]; in sqlite3VdbeExec()
1018 }else if( ALWAYS(pOp->p3) ){ in sqlite3VdbeExec()
1036 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
1037 assert( pOp->p2>=0 && pOp->p2<p->nOp ); in sqlite3VdbeExec()
1038 assert( pOp->p3>=0 && pOp->p3<p->nOp ); in sqlite3VdbeExec()
1039 pOut = &aMem[pOp->p1]; in sqlite3VdbeExec()
1041 pOut->u.i = pOp->p3 - 1; in sqlite3VdbeExec()
1043 if( pOp->p2==0 ) break; in sqlite3VdbeExec()
1048 assert( pOp->p2>0 ); /* There are never any jumps to instruction 0 */ in sqlite3VdbeExec()
1049 assert( pOp->p2<p->nOp ); /* Jumps must be in range */ in sqlite3VdbeExec()
1050 pOp = &aOp[pOp->p2 - 1]; in sqlite3VdbeExec()
1064 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1070 pOp = &aOp[pCaller->p2 - 1]; in sqlite3VdbeExec()
1090 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1094 pIn1->u.i = (int)(pOp - aOp); in sqlite3VdbeExec()
1095 REGISTER_TRACE(pOp->p1, pIn1); in sqlite3VdbeExec()
1096 pOp = &aOp[pcDest]; in sqlite3VdbeExec()
1109 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
1111 if( pOp->p2==OE_Abort ){ sqlite3VdbeAssertAbortable(p); } in sqlite3VdbeExec()
1153 if( pOp->p2==OE_Abort ){ sqlite3VdbeAssertAbortable(p); } in sqlite3VdbeExec()
1155 if( p->pFrame && pOp->p1==SQLITE_OK ){ in sqlite3VdbeExec()
1162 if( pOp->p2==OE_Ignore ){ in sqlite3VdbeExec()
1172 pOp = &aOp[pcx]; in sqlite3VdbeExec()
1175 p->rc = pOp->p1; in sqlite3VdbeExec()
1176 p->errorAction = (u8)pOp->p2; in sqlite3VdbeExec()
1177 assert( pOp->p5<=4 ); in sqlite3VdbeExec()
1179 if( pOp->p5 ){ in sqlite3VdbeExec()
1182 testcase( pOp->p5==1 ); in sqlite3VdbeExec()
1183 testcase( pOp->p5==2 ); in sqlite3VdbeExec()
1184 testcase( pOp->p5==3 ); in sqlite3VdbeExec()
1185 testcase( pOp->p5==4 ); in sqlite3VdbeExec()
1186 sqlite3VdbeError(p, "%s constraint failed", azType[pOp->p5-1]); in sqlite3VdbeExec()
1187 if( pOp->p4.z ){ in sqlite3VdbeExec()
1188 p->zErrMsg = sqlite3MPrintf(db, "%z: %s", p->zErrMsg, pOp->p4.z); in sqlite3VdbeExec()
1191 sqlite3VdbeError(p, "%s", pOp->p4.z); in sqlite3VdbeExec()
1193 pcx = (int)(pOp - aOp); in sqlite3VdbeExec()
1194 sqlite3_log(pOp->p1, "abort at %d in [%s]: %s", pcx, p->zSql, p->zErrMsg); in sqlite3VdbeExec()
1214 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1215 pOut->u.i = pOp->p1; in sqlite3VdbeExec()
1226 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1227 assert( pOp->p4.pI64!=0 ); in sqlite3VdbeExec()
1228 pOut->u.i = *pOp->p4.pI64; in sqlite3VdbeExec()
1240 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1242 assert( !sqlite3IsNaN(*pOp->p4.pReal) ); in sqlite3VdbeExec()
1243 pOut->u.r = *pOp->p4.pReal; in sqlite3VdbeExec()
1257 assert( pOp->p4.z!=0 ); in sqlite3VdbeExec()
1258 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1259 pOp->p1 = sqlite3Strlen30(pOp->p4.z); in sqlite3VdbeExec()
1263 rc = sqlite3VdbeMemSetStr(pOut, pOp->p4.z, -1, SQLITE_UTF8, SQLITE_STATIC); in sqlite3VdbeExec()
1271 if( pOp->p4type==P4_DYNAMIC ){ in sqlite3VdbeExec()
1272 sqlite3DbFree(db, pOp->p4.z); in sqlite3VdbeExec()
1274 pOp->p4type = P4_DYNAMIC; in sqlite3VdbeExec()
1275 pOp->p4.z = pOut->z; in sqlite3VdbeExec()
1276 pOp->p1 = pOut->n; in sqlite3VdbeExec()
1279 if( pOp->p1>db->aLimit[SQLITE_LIMIT_LENGTH] ){ in sqlite3VdbeExec()
1282 pOp->opcode = OP_String; in sqlite3VdbeExec()
1301 assert( pOp->p4.z!=0 ); in sqlite3VdbeExec()
1302 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1304 pOut->z = pOp->p4.z; in sqlite3VdbeExec()
1305 pOut->n = pOp->p1; in sqlite3VdbeExec()
1309 if( pOp->p3>0 ){ in sqlite3VdbeExec()
1310 assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
1311 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
1313 if( pIn3->u.i==pOp->p5 ) pOut->flags = MEM_Blob|MEM_Static|MEM_Term; in sqlite3VdbeExec()
1357 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1358 cnt = pOp->p3-pOp->p2; in sqlite3VdbeExec()
1359 assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
1360 pOut->flags = nullFlag = pOp->p1 ? (MEM_Null|MEM_Cleared) : MEM_Null; in sqlite3VdbeExec()
1385 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
1386 pOut = &aMem[pOp->p1]; in sqlite3VdbeExec()
1399 assert( pOp->p1 <= SQLITE_MAX_LENGTH ); in sqlite3VdbeExec()
1400 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
1401 if( pOp->p4.z==0 ){ in sqlite3VdbeExec()
1402 sqlite3VdbeMemSetZeroBlob(pOut, pOp->p1); in sqlite3VdbeExec()
1405 sqlite3VdbeMemSetStr(pOut, pOp->p4.z, pOp->p1, 0, 0); in sqlite3VdbeExec()
1423 assert( pOp->p1>0 && pOp->p1<=p->nVar ); in sqlite3VdbeExec()
1424 assert( pOp->p4.z==0 || pOp->p4.z==sqlite3VListNumToName(p->pVList,pOp->p1) ); in sqlite3VdbeExec()
1425 pVar = &p->aVar[pOp->p1 - 1]; in sqlite3VdbeExec()
1429 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
1452 n = pOp->p3; in sqlite3VdbeExec()
1453 p1 = pOp->p1; in sqlite3VdbeExec()
1454 p2 = pOp->p2; in sqlite3VdbeExec()
1500 n = pOp->p3; in sqlite3VdbeExec()
1501 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1502 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
1508 if( (pOut->flags & MEM_Subtype)!=0 && (pOp->p5 & 0x0002)!=0 ){ in sqlite3VdbeExec()
1514 REGISTER_TRACE(pOp->p2+pOp->p3-n, pOut); in sqlite3VdbeExec()
1536 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1537 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
1556 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1558 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
1591 assert( p->nResColumn==pOp->p2 ); in sqlite3VdbeExec()
1592 assert( pOp->p1>0 || CORRUPT_DB ); in sqlite3VdbeExec()
1593 assert( pOp->p1+pOp->p2<=(p->nMem+1 - p->nCursor)+1 ); in sqlite3VdbeExec()
1596 p->pResultSet = &aMem[pOp->p1]; in sqlite3VdbeExec()
1601 for(i=0; i<pOp->p2; i++){ in sqlite3VdbeExec()
1603 REGISTER_TRACE(pOp->p1+i, &pMem[i]); in sqlite3VdbeExec()
1617 p->pc = (int)(pOp - aOp) + 1; in sqlite3VdbeExec()
1640 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1641 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
1642 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
1743 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1745 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
1747 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
1752 switch( pOp->opcode ){ in sqlite3VdbeExec()
1780 switch( pOp->opcode ){ in sqlite3VdbeExec()
1833 assert( pOp->p4type==P4_COLLSEQ ); in sqlite3VdbeExec()
1834 if( pOp->p1 ){ in sqlite3VdbeExec()
1835 sqlite3VdbeMemSetInt64(&aMem[pOp->p1], 0); in sqlite3VdbeExec()
1879 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1880 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
1881 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
1888 op = pOp->opcode; in sqlite3VdbeExec()
1931 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1934 pIn1->u.i += pOp->p2; in sqlite3VdbeExec()
1946 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1951 if( pOp->p2==0 ){ in sqlite3VdbeExec()
1975 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
1980 REGISTER_TRACE(pOp->p1, pIn1); in sqlite3VdbeExec()
2003 assert( pOp->p2>=SQLITE_AFF_BLOB && pOp->p2<=SQLITE_AFF_REAL ); in sqlite3VdbeExec()
2004 testcase( pOp->p2==SQLITE_AFF_TEXT ); in sqlite3VdbeExec()
2005 testcase( pOp->p2==SQLITE_AFF_BLOB ); in sqlite3VdbeExec()
2006 testcase( pOp->p2==SQLITE_AFF_NUMERIC ); in sqlite3VdbeExec()
2007 testcase( pOp->p2==SQLITE_AFF_INTEGER ); in sqlite3VdbeExec()
2008 testcase( pOp->p2==SQLITE_AFF_REAL ); in sqlite3VdbeExec()
2009 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2013 rc = sqlite3VdbeMemCast(pIn1, pOp->p2, encoding); in sqlite3VdbeExec()
2016 REGISTER_TRACE(pOp->p1, pIn1); in sqlite3VdbeExec()
2124 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2125 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
2129 assert( (pOp->p5 & SQLITE_AFF_MASK)!=SQLITE_AFF_TEXT || CORRUPT_DB ); in sqlite3VdbeExec()
2132 if( sqlite3aGTb[pOp->opcode] ){ in sqlite3VdbeExec()
2133 VdbeBranchTaken(1, (pOp->p5 & SQLITE_NULLEQ)?2:3); in sqlite3VdbeExec()
2138 if( sqlite3aLTb[pOp->opcode] ){ in sqlite3VdbeExec()
2139 VdbeBranchTaken(1, (pOp->p5 & SQLITE_NULLEQ)?2:3); in sqlite3VdbeExec()
2144 if( sqlite3aEQb[pOp->opcode] ){ in sqlite3VdbeExec()
2145 VdbeBranchTaken(1, (pOp->p5 & SQLITE_NULLEQ)?2:3); in sqlite3VdbeExec()
2150 VdbeBranchTaken(0, (pOp->p5 & SQLITE_NULLEQ)?2:3); in sqlite3VdbeExec()
2155 if( pOp->p5 & SQLITE_NULLEQ ){ in sqlite3VdbeExec()
2161 assert( (pOp->p5 & SQLITE_JUMPIFNULL)==0 || CORRUPT_DB ); in sqlite3VdbeExec()
2162 testcase( (pOp->p5 & SQLITE_JUMPIFNULL)!=0 ); in sqlite3VdbeExec()
2176 if( pOp->p5 & SQLITE_JUMPIFNULL ){ in sqlite3VdbeExec()
2185 affinity = pOp->p5 & SQLITE_AFF_MASK; in sqlite3VdbeExec()
2216 assert( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 ); in sqlite3VdbeExec()
2217 res = sqlite3MemCompare(pIn3, pIn1, pOp->p4.pColl); in sqlite3VdbeExec()
2229 res2 = sqlite3aLTb[pOp->opcode]; in sqlite3VdbeExec()
2231 res2 = sqlite3aEQb[pOp->opcode]; in sqlite3VdbeExec()
2233 res2 = sqlite3aGTb[pOp->opcode]; in sqlite3VdbeExec()
2243 VdbeBranchTaken(res2!=0, (pOp->p5 & SQLITE_NULLEQ)?2:3); in sqlite3VdbeExec()
2268 for(iAddr = (int)(pOp - aOp) - 1; ALWAYS(iAddr>=0); iAddr--){ in sqlite3VdbeExec()
2292 assert( pOp->p4type==P4_INTARRAY ); in sqlite3VdbeExec()
2293 assert( pOp->p4.ai ); in sqlite3VdbeExec()
2294 assert( pOp[1].opcode==OP_Compare ); in sqlite3VdbeExec()
2295 assert( pOp[1].p5 & OPFLAG_PERMUTE ); in sqlite3VdbeExec()
2332 if( (pOp->p5 & OPFLAG_PERMUTE)==0 ){ in sqlite3VdbeExec()
2335 assert( pOp>aOp ); in sqlite3VdbeExec()
2336 assert( pOp[-1].opcode==OP_Permutation ); in sqlite3VdbeExec()
2337 assert( pOp[-1].p4type==P4_INTARRAY ); in sqlite3VdbeExec()
2338 aPermute = pOp[-1].p4.ai + 1; in sqlite3VdbeExec()
2341 n = pOp->p3; in sqlite3VdbeExec()
2342 pKeyInfo = pOp->p4.pKeyInfo; in sqlite3VdbeExec()
2345 p1 = pOp->p1; in sqlite3VdbeExec()
2346 p2 = pOp->p2; in sqlite3VdbeExec()
2378 assert( pOp[1].opcode==OP_Jump ); in sqlite3VdbeExec()
2391 assert( pOp>aOp && pOp[-1].opcode==OP_Compare ); in sqlite3VdbeExec()
2393 VdbeBranchTaken(0,4); pOp = &aOp[pOp->p1 - 1]; in sqlite3VdbeExec()
2395 VdbeBranchTaken(1,4); pOp = &aOp[pOp->p2 - 1]; in sqlite3VdbeExec()
2397 VdbeBranchTaken(2,4); pOp = &aOp[pOp->p3 - 1]; in sqlite3VdbeExec()
2427 v1 = sqlite3VdbeBooleanValue(&aMem[pOp->p1], 2); in sqlite3VdbeExec()
2428 v2 = sqlite3VdbeBooleanValue(&aMem[pOp->p2], 2); in sqlite3VdbeExec()
2429 if( pOp->opcode==OP_And ){ in sqlite3VdbeExec()
2436 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
2467 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
2468 assert( pOp->p4.i==0 || pOp->p4.i==1 ); in sqlite3VdbeExec()
2469 assert( pOp->p3==0 || pOp->p3==1 ); in sqlite3VdbeExec()
2470 sqlite3VdbeMemSetInt64(&aMem[pOp->p2], in sqlite3VdbeExec()
2471 sqlite3VdbeBooleanValue(&aMem[pOp->p1], pOp->p3) ^ pOp->p4.i); in sqlite3VdbeExec()
2483 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2484 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
2501 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2502 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
2532 iAddr = (int)(pOp - p->aOp); in sqlite3VdbeExec()
2539 if( p->aOp[0].p1==pOp->p1 ){ in sqlite3VdbeExec()
2545 pOp->p1 = p->aOp[0].p1; in sqlite3VdbeExec()
2557 c = sqlite3VdbeBooleanValue(&aMem[pOp->p1], pOp->p3); in sqlite3VdbeExec()
2571 c = !sqlite3VdbeBooleanValue(&aMem[pOp->p1], !pOp->p3); in sqlite3VdbeExec()
2583 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2621 assert( pOp->p1>=(-1) && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
2622 assert( pOp->p1>=0 || (pOp->p3>=0 && pOp->p3<=(p->nMem+1 - p->nCursor)) ); in sqlite3VdbeExec()
2623 if( pOp->p1>=0 ){ in sqlite3VdbeExec()
2624 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
2626 assert( pOp->p3>=0 ); in sqlite3VdbeExec()
2627 if( pOp->p3<pC->nHdrParsed ){ in sqlite3VdbeExec()
2628 serialType = pC->aType[pOp->p3]; in sqlite3VdbeExec()
2655 typeMask = 1 << (pOp->p4.i - 1); in sqlite3VdbeExec()
2663 assert( memIsValid(&aMem[pOp->p3]) ); in sqlite3VdbeExec()
2664 typeMask = 1 << (sqlite3_value_type((sqlite3_value*)&aMem[pOp->p3])-1); in sqlite3VdbeExec()
2671 VdbeBranchTaken( (typeMask & pOp->p5)!=0, 2); in sqlite3VdbeExec()
2672 if( typeMask & pOp->p5 ){ in sqlite3VdbeExec()
2686 if( (aMem[pOp->p1].flags & MEM_Null)!=0 in sqlite3VdbeExec()
2687 || (aMem[pOp->p3].flags & MEM_Null)!=0 in sqlite3VdbeExec()
2689 sqlite3VdbeMemSetNull(aMem + pOp->p2); in sqlite3VdbeExec()
2691 sqlite3VdbeMemSetInt64(aMem + pOp->p2, 0); in sqlite3VdbeExec()
2702 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
2722 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
2723 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
2725 sqlite3VdbeMemSetNull(aMem + pOp->p3); in sqlite3VdbeExec()
2749 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
2750 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
2751 pOut = &p->aMem[pOp->p3]; in sqlite3VdbeExec()
2807 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
2808 assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
2809 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
2810 p2 = (u32)pOp->p2; in sqlite3VdbeExec()
2833 pDest = &aMem[pOp->p3]; in sqlite3VdbeExec()
2982 pDest = &aMem[pOp->p3]; in sqlite3VdbeExec()
2984 if( pOp->p4type==P4_MEM ){ in sqlite3VdbeExec()
2985 sqlite3VdbeMemShallowCopy(pDest, pOp->p4.pMem, MEM_Static); in sqlite3VdbeExec()
3001 pDest = &aMem[pOp->p3]; in sqlite3VdbeExec()
3037 if( ((pOp->p5 & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))!=0 in sqlite3VdbeExec()
3038 && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0)) in sqlite3VdbeExec()
3066 REGISTER_TRACE(pOp->p3, pDest); in sqlite3VdbeExec()
3071 pOp = &aOp[aOp[0].p3-1]; in sqlite3VdbeExec()
3110 assert( pOp->p4type==P4_TABLE ); in sqlite3VdbeExec()
3111 pTab = pOp->p4.pTab; in sqlite3VdbeExec()
3113 assert( pTab->nNVCol==pOp->p2 ); in sqlite3VdbeExec()
3115 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
3119 if( pOp->p3 ){ pIn1++; continue; } in sqlite3VdbeExec()
3121 assert( pIn1 < &aMem[pOp->p1+pOp->p2] ); in sqlite3VdbeExec()
3172 assert( pIn1 == &aMem[pOp->p1+pOp->p2] ); in sqlite3VdbeExec()
3195 zAffinity = pOp->p4.z; in sqlite3VdbeExec()
3197 assert( pOp->p2>0 ); in sqlite3VdbeExec()
3198 assert( zAffinity[pOp->p2]==0 ); in sqlite3VdbeExec()
3199 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
3291 nField = pOp->p1; in sqlite3VdbeExec()
3292 zAffinity = pOp->p4.z; in sqlite3VdbeExec()
3293 assert( nField>0 && pOp->p2>0 && pOp->p2+nField<=(p->nMem+1 - p->nCursor)+1 ); in sqlite3VdbeExec()
3295 nField = pOp->p2; in sqlite3VdbeExec()
3299 assert( pOp->p3<pOp->p1 || pOp->p3>=pOp->p1+pOp->p2 ); in sqlite3VdbeExec()
3300 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
3327 if( pOp->p5 ){ in sqlite3VdbeExec()
3328 while( (pLast->flags & MEM_Null)!=0 && nField>pOp->p5 ){ in sqlite3VdbeExec()
3373 assert( pOp->p5==OPFLAG_NOCHNG_MAGIC || CORRUPT_DB ); in sqlite3VdbeExec()
3560 assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
3561 REGISTER_TRACE(pOp->p3, pOut); in sqlite3VdbeExec()
3579 assert( p->apCsr[pOp->p1]->eCurType==CURTYPE_BTREE ); in sqlite3VdbeExec()
3580 pCrsr = p->apCsr[pOp->p1]->uc.pCursor; in sqlite3VdbeExec()
3582 if( pOp->p3 ){ in sqlite3VdbeExec()
3589 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
3611 p1 = pOp->p1; in sqlite3VdbeExec()
3612 zName = pOp->p4.z; in sqlite3VdbeExec()
3702 p->pc = (int)(pOp - aOp); in sqlite3VdbeExec()
3795 desiredAutoCommit = pOp->p1; in sqlite3VdbeExec()
3796 iRollback = pOp->p2; in sqlite3VdbeExec()
3821 p->pc = (int)(pOp - aOp); in sqlite3VdbeExec()
3886 assert( p->readOnly==0 || pOp->p2==0 ); in sqlite3VdbeExec()
3887 assert( pOp->p2>=0 && pOp->p2<=2 ); in sqlite3VdbeExec()
3888 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
3889 assert( DbMaskTest(p->btreeMask, pOp->p1) ); in sqlite3VdbeExec()
3891 if( pOp->p2 && (db->flags & (SQLITE_QueryOnly|SQLITE_CorruptRdOnly))!=0 ){ in sqlite3VdbeExec()
3902 pDb = &db->aDb[pOp->p1]; in sqlite3VdbeExec()
3906 rc = sqlite3BtreeBeginTrans(pBt, pOp->p2, &iMeta); in sqlite3VdbeExec()
3911 p->pc = (int)(pOp - aOp); in sqlite3VdbeExec()
3919 && pOp->p2 in sqlite3VdbeExec()
3941 assert( pOp->p5==0 || pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
3943 && pOp->p5 in sqlite3VdbeExec()
3944 && (iMeta!=pOp->p3 || pDb->pSchema->iGeneration!=pOp->p4.i) in sqlite3VdbeExec()
3966 if( db->aDb[pOp->p1].pSchema->schema_cookie!=iMeta ){ in sqlite3VdbeExec()
3967 sqlite3ResetOneSchema(db, pOp->p1); in sqlite3VdbeExec()
3999 iDb = pOp->p1; in sqlite3VdbeExec()
4000 iCookie = pOp->p3; in sqlite3VdbeExec()
4001 assert( pOp->p3<SQLITE_N_BTREE_META ); in sqlite3VdbeExec()
4007 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
4031 assert( pOp->p2<SQLITE_N_BTREE_META ); in sqlite3VdbeExec()
4032 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
4033 assert( DbMaskTest(p->btreeMask, pOp->p1) ); in sqlite3VdbeExec()
4035 pDb = &db->aDb[pOp->p1]; in sqlite3VdbeExec()
4037 assert( sqlite3SchemaMutexHeld(db, pOp->p1, 0) ); in sqlite3VdbeExec()
4039 rc = sqlite3BtreeUpdateMeta(pDb->pBt, pOp->p2, pOp->p3); in sqlite3VdbeExec()
4040 if( pOp->p2==BTREE_SCHEMA_VERSION ){ in sqlite3VdbeExec()
4042 *(u32*)&pDb->pSchema->schema_cookie = *(u32*)&pOp->p3 - pOp->p5; in sqlite3VdbeExec()
4044 sqlite3FkClearTriggerCache(db, pOp->p1); in sqlite3VdbeExec()
4045 }else if( pOp->p2==BTREE_FILE_FORMAT ){ in sqlite3VdbeExec()
4047 pDb->pSchema->file_format = pOp->p3; in sqlite3VdbeExec()
4049 if( pOp->p1==1 ){ in sqlite3VdbeExec()
4153 assert( pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ ); in sqlite3VdbeExec()
4154 assert( pOp->p4type==P4_KEYINFO ); in sqlite3VdbeExec()
4155 pCur = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4156 if( pCur && pCur->pgnoRoot==(u32)pOp->p2 ){ in sqlite3VdbeExec()
4157 assert( pCur->iDb==pOp->p3 ); /* Guaranteed by the code generator */ in sqlite3VdbeExec()
4167 assert( pOp->opcode==OP_OpenWrite || pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ ); in sqlite3VdbeExec()
4169 assert( pOp->opcode==OP_OpenRead || pOp->opcode==OP_ReopenIdx in sqlite3VdbeExec()
4179 p2 = (u32)pOp->p2; in sqlite3VdbeExec()
4180 iDb = pOp->p3; in sqlite3VdbeExec()
4186 if( pOp->opcode==OP_OpenWrite ){ in sqlite3VdbeExec()
4188 wrFlag = BTREE_WRCSR | (pOp->p5 & OPFLAG_FORDELETE); in sqlite3VdbeExec()
4196 if( pOp->p5 & OPFLAG_P2ISREG ){ in sqlite3VdbeExec()
4199 assert( pOp->opcode==OP_OpenWrite ); in sqlite3VdbeExec()
4211 if( pOp->p4type==P4_KEYINFO ){ in sqlite3VdbeExec()
4212 pKeyInfo = pOp->p4.pKeyInfo; in sqlite3VdbeExec()
4216 }else if( pOp->p4type==P4_INT32 ){ in sqlite3VdbeExec()
4217 nField = pOp->p4.i; in sqlite3VdbeExec()
4219 assert( pOp->p1>=0 ); in sqlite3VdbeExec()
4222 pCur = allocateCursor(p, pOp->p1, nField, CURTYPE_BTREE); in sqlite3VdbeExec()
4237 pCur->isTable = pOp->p4type!=P4_KEYINFO; in sqlite3VdbeExec()
4242 testcase( pOp->p5 & OPFLAG_BULKCSR ); in sqlite3VdbeExec()
4243 testcase( pOp->p2 & OPFLAG_SEEKEQ ); in sqlite3VdbeExec()
4245 (pOp->p5 & (OPFLAG_BULKCSR|OPFLAG_SEEKEQ))); in sqlite3VdbeExec()
4262 pOrig = p->apCsr[pOp->p2]; in sqlite3VdbeExec()
4266 pCx = allocateCursor(p, pOp->p1, pOrig->nField, CURTYPE_BTREE); in sqlite3VdbeExec()
4331 assert( pOp->p1>=0 ); in sqlite3VdbeExec()
4332 assert( pOp->p2>=0 ); in sqlite3VdbeExec()
4333 if( pOp->p3>0 ){ in sqlite3VdbeExec()
4336 assert( pOp->p2==0 ); /* Only used when number of columns is zero */ in sqlite3VdbeExec()
4337 assert( pOp->opcode==OP_OpenEphemeral ); in sqlite3VdbeExec()
4338 assert( aMem[pOp->p3].flags & MEM_Null ); in sqlite3VdbeExec()
4339 aMem[pOp->p3].n = 0; in sqlite3VdbeExec()
4340 aMem[pOp->p3].z = ""; in sqlite3VdbeExec()
4342 pCx = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4343 if( pCx && !pCx->noReuse && ALWAYS(pOp->p2<=pCx->nField) ){ in sqlite3VdbeExec()
4352 pCx = allocateCursor(p, pOp->p1, pOp->p2, CURTYPE_BTREE); in sqlite3VdbeExec()
4356 BTREE_OMIT_JOURNAL | BTREE_SINGLE | pOp->p5, in sqlite3VdbeExec()
4366 if( (pCx->pKeyInfo = pKeyInfo = pOp->p4.pKeyInfo)!=0 ){ in sqlite3VdbeExec()
4367 assert( pOp->p4type==P4_KEYINFO ); in sqlite3VdbeExec()
4369 BTREE_BLOBKEY | pOp->p5); in sqlite3VdbeExec()
4385 pCx->isOrdered = (pOp->p5!=BTREE_UNORDERED); in sqlite3VdbeExec()
4409 assert( pOp->p1>=0 ); in sqlite3VdbeExec()
4410 assert( pOp->p2>=0 ); in sqlite3VdbeExec()
4411 pCx = allocateCursor(p, pOp->p1, pOp->p2, CURTYPE_SORTER); in sqlite3VdbeExec()
4413 pCx->pKeyInfo = pOp->p4.pKeyInfo; in sqlite3VdbeExec()
4416 rc = sqlite3VdbeSorterInit(db, pOp->p3, pCx); in sqlite3VdbeExec()
4430 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
4431 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4458 assert( pOp->p1>=0 ); in sqlite3VdbeExec()
4459 assert( pOp->p3>=0 ); in sqlite3VdbeExec()
4460 pCx = allocateCursor(p, pOp->p1, pOp->p3, CURTYPE_PSEUDO); in sqlite3VdbeExec()
4463 pCx->seekResult = pOp->p2; in sqlite3VdbeExec()
4470 assert( pOp->p5==0 ); in sqlite3VdbeExec()
4480 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
4481 sqlite3VdbeFreeCursor(p, p->apCsr[pOp->p1]); in sqlite3VdbeExec()
4482 p->apCsr[pOp->p1] = 0; in sqlite3VdbeExec()
4499 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4501 pC->maskUsed = *(u64*)pOp->p4.pI64; in sqlite3VdbeExec()
4608 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
4609 assert( pOp->p2!=0 ); in sqlite3VdbeExec()
4610 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4618 oc = pOp->opcode; in sqlite3VdbeExec()
4622 pC->seekOp = pOp->opcode; in sqlite3VdbeExec()
4636 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
4697 assert( pOp->opcode==OP_SeekGE || pOp->opcode==OP_SeekLE ); in sqlite3VdbeExec()
4698 assert( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT ); in sqlite3VdbeExec()
4699 assert( pOp->opcode==OP_SeekGE || pOp[1].opcode==OP_IdxLT ); in sqlite3VdbeExec()
4700 assert( pOp->opcode==OP_SeekLE || pOp[1].opcode==OP_IdxGT ); in sqlite3VdbeExec()
4701 assert( pOp[1].p1==pOp[0].p1 ); in sqlite3VdbeExec()
4702 assert( pOp[1].p2==pOp[0].p2 ); in sqlite3VdbeExec()
4703 assert( pOp[1].p3==pOp[0].p3 ); in sqlite3VdbeExec()
4704 assert( pOp[1].p4.i==pOp[0].p4.i ); in sqlite3VdbeExec()
4707 nField = pOp->p4.i; in sqlite3VdbeExec()
4708 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
4726 r.aMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
4732 if( i>0 ) REGISTER_TRACE(pOp->p3+i, &r.aMem[i]); in sqlite3VdbeExec()
4785 assert( pOp->p2>0 ); in sqlite3VdbeExec()
4790 assert( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT ); in sqlite3VdbeExec()
4791 pOp++; /* Skip the OP_IdxLt or OP_IdxGT that follows */ in sqlite3VdbeExec()
4871 assert( pOp[1].opcode==OP_SeekGE ); in sqlite3VdbeExec()
4876 assert( pOp->p2>=(int)(pOp-aOp)+2 ); in sqlite3VdbeExec()
4878 if( pOp->p5==0 ){ in sqlite3VdbeExec()
4880 assert( pOp[1].p1==aOp[pOp->p2-1].p1 ); in sqlite3VdbeExec()
4881 assert( pOp[1].p2==aOp[pOp->p2-1].p2 ); in sqlite3VdbeExec()
4882 assert( pOp[1].p3==aOp[pOp->p2-1].p3 ); in sqlite3VdbeExec()
4883 assert( aOp[pOp->p2-1].opcode==OP_IdxGT in sqlite3VdbeExec()
4884 || aOp[pOp->p2-1].opcode==OP_IdxGE ); in sqlite3VdbeExec()
4885 testcase( aOp[pOp->p2-1].opcode==OP_IdxGE ); in sqlite3VdbeExec()
4888 assert( pOp->p2==(int)(pOp-aOp)+2 ); in sqlite3VdbeExec()
4889 assert( aOp[pOp->p2-1].opcode==OP_SeekGE ); in sqlite3VdbeExec()
4893 assert( pOp->p1>0 ); in sqlite3VdbeExec()
4894 pC = p->apCsr[pOp[1].p1]; in sqlite3VdbeExec()
4906 nStep = pOp->p1; in sqlite3VdbeExec()
4909 r.nField = (u16)pOp[1].p4.i; in sqlite3VdbeExec()
4911 r.aMem = &aMem[pOp[1].p3]; in sqlite3VdbeExec()
4917 REGISTER_TRACE(pOp[1].p3+i, &aMem[pOp[1].p3+i]); in sqlite3VdbeExec()
4925 if( res>0 && pOp->p5==0 ){ in sqlite3VdbeExec()
4930 printf("... %d steps and then skip\n", pOp->p1 - nStep); in sqlite3VdbeExec()
4934 pOp++; in sqlite3VdbeExec()
4941 printf("... %d steps and then success\n", pOp->p1 - nStep); in sqlite3VdbeExec()
4951 printf("... fall through after %d steps\n", pOp->p1); in sqlite3VdbeExec()
4989 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
4990 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
4992 assert( pOp->p3>=pOp->p2 ); in sqlite3VdbeExec()
4993 if( pC->seekHit<pOp->p2 ){ in sqlite3VdbeExec()
4996 printf("seekHit changes from %d to %d\n", pC->seekHit, pOp->p2); in sqlite3VdbeExec()
4999 pC->seekHit = pOp->p2; in sqlite3VdbeExec()
5000 }else if( pC->seekHit>pOp->p3 ){ in sqlite3VdbeExec()
5003 printf("seekHit changes from %d to %d\n", pC->seekHit, pOp->p3); in sqlite3VdbeExec()
5006 pC->seekHit = pOp->p3; in sqlite3VdbeExec()
5020 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5021 pCur = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5121 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5122 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5129 if( pC->seekHit>=pOp->p4.i ) break; in sqlite3VdbeExec()
5143 if( pOp->opcode!=OP_NoConflict ) sqlite3_found_count++; in sqlite3VdbeExec()
5146 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5147 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
5148 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5151 pC->seekOp = pOp->opcode; in sqlite3VdbeExec()
5153 r.aMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
5157 r.nField = (u16)pOp->p4.i; in sqlite3VdbeExec()
5166 if( ii ) REGISTER_TRACE(pOp->p3+ii, &r.aMem[ii]); in sqlite3VdbeExec()
5173 assert( pOp->opcode!=OP_NoConflict ); in sqlite3VdbeExec()
5191 if( pOp->opcode==OP_Found ){ in sqlite3VdbeExec()
5199 if( pOp->opcode==OP_NoConflict ){ in sqlite3VdbeExec()
5211 if( pOp->opcode==OP_IfNoHope ){ in sqlite3VdbeExec()
5212 pC->seekHit = pOp->p4.i; in sqlite3VdbeExec()
5271 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
5291 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
5292 assert( (pIn3->flags & MEM_Int)!=0 || pOp->opcode==OP_SeekRowid ); in sqlite3VdbeExec()
5293 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5296 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5299 if( pOp->opcode==OP_SeekRowid ) pC->seekOp = OP_SeekRowid; in sqlite3VdbeExec()
5316 if( pOp->p2==0 ){ in sqlite3VdbeExec()
5335 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5336 assert( p->apCsr[pOp->p1]!=0 ); in sqlite3VdbeExec()
5337 assert( p->apCsr[pOp->p1]->eCurType!=CURTYPE_VTAB ); in sqlite3VdbeExec()
5338 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
5339 pOut->u.i = p->apCsr[pOp->p1]->seqCount++; in sqlite3VdbeExec()
5371 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
5372 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5373 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5423 if( pOp->p3 ){ in sqlite3VdbeExec()
5425 assert( pOp->p3>0 ); in sqlite3VdbeExec()
5429 assert( pOp->p3<=pFrame->nMem ); in sqlite3VdbeExec()
5430 pMem = &pFrame->aMem[pOp->p3]; in sqlite3VdbeExec()
5433 assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
5434 pMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
5439 REGISTER_TRACE(pOp->p3, pMem); in sqlite3VdbeExec()
5457 assert( pOp->p3==0 ); /* We cannot be in random rowid mode if this is in sqlite3VdbeExec()
5527 pData = &aMem[pOp->p2]; in sqlite3VdbeExec()
5528 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5530 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5535 assert( (pOp->p5 & OPFLAG_ISNOOP) || pC->isTable ); in sqlite3VdbeExec()
5536 assert( pOp->p4type==P4_TABLE || pOp->p4type>=P4_STATIC ); in sqlite3VdbeExec()
5537 REGISTER_TRACE(pOp->p2, pData); in sqlite3VdbeExec()
5540 pKey = &aMem[pOp->p3]; in sqlite3VdbeExec()
5543 REGISTER_TRACE(pOp->p3, pKey); in sqlite3VdbeExec()
5546 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){ in sqlite3VdbeExec()
5549 pTab = pOp->p4.pTab; in sqlite3VdbeExec()
5550 assert( (pOp->p5 & OPFLAG_ISNOOP) || HasRowid(pTab) ); in sqlite3VdbeExec()
5559 if( db->xPreUpdateCallback && !(pOp->p5 & OPFLAG_ISUPDATE) ){ in sqlite3VdbeExec()
5560 sqlite3VdbePreUpdateHook(p,pC,SQLITE_INSERT,zDb,pTab,x.nKey,pOp->p2,-1); in sqlite3VdbeExec()
5567 if( pOp->p5 & OPFLAG_ISNOOP ) break; in sqlite3VdbeExec()
5570 if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++; in sqlite3VdbeExec()
5571 if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey; in sqlite3VdbeExec()
5575 seekResult = ((pOp->p5 & OPFLAG_USESEEKRESULT) ? pC->seekResult : 0); in sqlite3VdbeExec()
5583 (pOp->p5 & (OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT)), in sqlite3VdbeExec()
5595 (pOp->p5 & OPFLAG_ISUPDATE) ? SQLITE_UPDATE : SQLITE_INSERT, in sqlite3VdbeExec()
5616 assert( pOp[1].opcode==OP_Insert || pOp[1].opcode==OP_IdxInsert ); in sqlite3VdbeExec()
5617 assert( pOp[1].opcode==OP_Insert || pOp->p3==0 ); in sqlite3VdbeExec()
5618 assert( pOp[1].opcode==OP_IdxInsert || pOp->p3>0 ); in sqlite3VdbeExec()
5619 assert( pOp[1].p5 & OPFLAG_PREFORMAT ); in sqlite3VdbeExec()
5620 pDest = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5621 pSrc = p->apCsr[pOp->p2]; in sqlite3VdbeExec()
5622 iKey = pOp->p3 ? aMem[pOp->p3].u.i : 0; in sqlite3VdbeExec()
5669 opflags = pOp->p2; in sqlite3VdbeExec()
5670 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5671 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5679 if( pOp->p4type==P4_TABLE in sqlite3VdbeExec()
5680 && HasRowid(pOp->p4.pTab) in sqlite3VdbeExec()
5681 && pOp->p5==0 in sqlite3VdbeExec()
5697 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){ in sqlite3VdbeExec()
5699 assert( pOp->p4.pTab!=0 ); in sqlite3VdbeExec()
5701 pTab = pOp->p4.pTab; in sqlite3VdbeExec()
5702 if( (pOp->p5 & OPFLAG_SAVEPOSITION)!=0 && pC->isTable ){ in sqlite3VdbeExec()
5712 assert( db->xPreUpdateCallback==0 || pTab==pOp->p4.pTab ); in sqlite3VdbeExec()
5716 || (aMem[pOp->p3].flags & MEM_Int) in sqlite3VdbeExec()
5721 pOp->p3, -1 in sqlite3VdbeExec()
5728 assert( (pOp->p5 & ~(OPFLAG_SAVEPOSITION|OPFLAG_AUXDELETE))==0 ); in sqlite3VdbeExec()
5735 && (pOp->p5 & OPFLAG_AUXDELETE)==0 in sqlite3VdbeExec()
5740 if( pOp->p2 & OPFLAG_NCHANGE ){ in sqlite3VdbeExec()
5746 rc = sqlite3BtreeDelete(pC->uc.pCursor, pOp->p5); in sqlite3VdbeExec()
5796 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5798 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
5799 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
5800 nKeyCol = pOp->p4.i; in sqlite3VdbeExec()
5824 pOut = &aMem[pOp->p2]; in sqlite3VdbeExec()
5825 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5829 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5831 p->apCsr[pOp->p3]->cacheStatus = CACHE_STALE; in sqlite3VdbeExec()
5868 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
5870 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5871 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5897 if( !pOp->p3 ) Deephemeralize(pOut); in sqlite3VdbeExec()
5899 REGISTER_TRACE(pOp->p2, pOut); in sqlite3VdbeExec()
5919 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
5920 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5921 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5966 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
5967 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
5971 pC = allocateCursor(p, pOp->p1, 1, CURTYPE_PSEUDO); in sqlite3VdbeExec()
6018 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6019 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6026 pC->seekOp = pOp->opcode; in sqlite3VdbeExec()
6028 if( pOp->opcode==OP_SeekEnd ){ in sqlite3VdbeExec()
6029 assert( pOp->p2==0 ); in sqlite3VdbeExec()
6040 if( pOp->p2>0 ){ in sqlite3VdbeExec()
6058 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6059 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6067 if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)<pOp->p3 ) res = 1; in sqlite3VdbeExec()
6123 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6124 assert( pOp->p5==0 ); in sqlite3VdbeExec()
6125 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6127 assert( isSorter(pC)==(pOp->opcode==OP_SorterSort) ); in sqlite3VdbeExec()
6144 assert( pOp->p2>0 && pOp->p2<p->nOp ); in sqlite3VdbeExec()
6207 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6213 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6214 assert( pOp->p5==0 in sqlite3VdbeExec()
6215 || pOp->p5==SQLITE_STMTSTATUS_FULLSCAN_STEP in sqlite3VdbeExec()
6216 || pOp->p5==SQLITE_STMTSTATUS_AUTOINDEX); in sqlite3VdbeExec()
6217 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6224 rc = sqlite3BtreePrevious(pC->uc.pCursor, pOp->p3); in sqlite3VdbeExec()
6228 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6229 assert( pOp->p5==0 in sqlite3VdbeExec()
6230 || pOp->p5==SQLITE_STMTSTATUS_FULLSCAN_STEP in sqlite3VdbeExec()
6231 || pOp->p5==SQLITE_STMTSTATUS_AUTOINDEX); in sqlite3VdbeExec()
6232 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6240 rc = sqlite3BtreeNext(pC->uc.pCursor, pOp->p3); in sqlite3VdbeExec()
6247 p->aCounter[pOp->p5]++; in sqlite3VdbeExec()
6291 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6292 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6296 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
6297 assert( (pIn2->flags & MEM_Blob) || (pOp->p5 & OPFLAG_PREFORMAT) ); in sqlite3VdbeExec()
6298 if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++; in sqlite3VdbeExec()
6305 x.aMem = aMem + pOp->p3; in sqlite3VdbeExec()
6306 x.nMem = (u16)pOp->p4.i; in sqlite3VdbeExec()
6308 (pOp->p5 & (OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT)), in sqlite3VdbeExec()
6309 ((pOp->p5 & OPFLAG_USESEEKRESULT) ? pC->seekResult : 0) in sqlite3VdbeExec()
6327 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6328 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6332 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
6363 assert( pOp->p3>0 ); in sqlite3VdbeExec()
6364 assert( pOp->p2>0 && pOp->p2+pOp->p3<=(p->nMem+1 - p->nCursor)+1 ); in sqlite3VdbeExec()
6365 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6366 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6373 r.nField = (u16)pOp->p3; in sqlite3VdbeExec()
6375 r.aMem = &aMem[pOp->p2]; in sqlite3VdbeExec()
6381 }else if( pOp->p5 && !sqlite3WritableSchema(db) ){ in sqlite3VdbeExec()
6425 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6426 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6432 assert( !pC->nullRow || pOp->opcode==OP_IdxRowid ); in sqlite3VdbeExec()
6449 if( pOp->opcode==OP_DeferredSeek ){ in sqlite3VdbeExec()
6450 assert( pOp->p3>=0 && pOp->p3<p->nCursor ); in sqlite3VdbeExec()
6451 pTabCur = p->apCsr[pOp->p3]; in sqlite3VdbeExec()
6460 assert( pOp->p4type==P4_INTARRAY || pOp->p4.ai==0 ); in sqlite3VdbeExec()
6462 pTabCur->ub.aAltMap = pOp->p4.ai; in sqlite3VdbeExec()
6466 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
6470 assert( pOp->opcode==OP_IdxRowid ); in sqlite3VdbeExec()
6471 sqlite3VdbeMemSetNull(&aMem[pOp->p2]); in sqlite3VdbeExec()
6485 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6486 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6546 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6547 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6553 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
6555 r.nField = (u16)pOp->p4.i; in sqlite3VdbeExec()
6556 if( pOp->opcode<OP_IdxLT ){ in sqlite3VdbeExec()
6557 assert( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxGT ); in sqlite3VdbeExec()
6560 assert( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxLT ); in sqlite3VdbeExec()
6563 r.aMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
6569 REGISTER_TRACE(pOp->p3+i, &aMem[pOp->p3+i]); in sqlite3VdbeExec()
6599 if( (pOp->opcode&1)==(OP_IdxLT&1) ){ in sqlite3VdbeExec()
6600 assert( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxLT ); in sqlite3VdbeExec()
6603 assert( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxGT ); in sqlite3VdbeExec()
6645 assert( pOp->p1>1 ); in sqlite3VdbeExec()
6646 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
6653 iDb = pOp->p3; in sqlite3VdbeExec()
6656 rc = sqlite3BtreeDropTable(db->aDb[iDb].pBt, pOp->p1, &iMoved); in sqlite3VdbeExec()
6662 sqlite3RootPageMoved(db, iDb, iMoved, pOp->p1); in sqlite3VdbeExec()
6695 assert( DbMaskTest(p->btreeMask, pOp->p2) ); in sqlite3VdbeExec()
6696 rc = sqlite3BtreeClearTable(db->aDb[pOp->p2].pBt, (u32)pOp->p1, &nChange); in sqlite3VdbeExec()
6697 if( pOp->p3 ){ in sqlite3VdbeExec()
6699 if( pOp->p3>0 ){ in sqlite3VdbeExec()
6700 assert( memIsValid(&aMem[pOp->p3]) ); in sqlite3VdbeExec()
6701 memAboutToChange(p, &aMem[pOp->p3]); in sqlite3VdbeExec()
6702 aMem[pOp->p3].u.i += nChange; in sqlite3VdbeExec()
6720 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
6721 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
6748 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
6750 assert( pOp->p3==BTREE_INTKEY || pOp->p3==BTREE_BLOBKEY ); in sqlite3VdbeExec()
6751 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
6752 assert( DbMaskTest(p->btreeMask, pOp->p1) ); in sqlite3VdbeExec()
6754 pDb = &db->aDb[pOp->p1]; in sqlite3VdbeExec()
6756 rc = sqlite3BtreeCreateTable(pDb->pBt, &pgno, pOp->p3); in sqlite3VdbeExec()
6769 rc = sqlite3_exec(db, pOp->p4.z, 0, 0, 0); in sqlite3VdbeExec()
6800 iDb = pOp->p1; in sqlite3VdbeExec()
6807 if( pOp->p4.z==0 ){ in sqlite3VdbeExec()
6810 rc = sqlite3InitOne(db, iDb, &p->zErrMsg, pOp->p5); in sqlite3VdbeExec()
6824 db->aDb[iDb].zDbSName, zSchema, pOp->p4.z); in sqlite3VdbeExec()
6863 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
6864 rc = sqlite3AnalysisLoad(db, pOp->p1); in sqlite3VdbeExec()
6880 sqlite3UnlinkAndDeleteTable(db, pOp->p1, pOp->p4.z); in sqlite3VdbeExec()
6894 sqlite3UnlinkAndDeleteIndex(db, pOp->p1, pOp->p4.z); in sqlite3VdbeExec()
6908 sqlite3UnlinkAndDeleteTrigger(db, pOp->p1, pOp->p4.z); in sqlite3VdbeExec()
6941 nRoot = pOp->p2; in sqlite3VdbeExec()
6942 aRoot = pOp->p4.ai; in sqlite3VdbeExec()
6945 assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
6946 pnErr = &aMem[pOp->p3]; in sqlite3VdbeExec()
6949 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
6950 assert( pOp->p5<db->nDb ); in sqlite3VdbeExec()
6951 assert( DbMaskTest(p->btreeMask, pOp->p5) ); in sqlite3VdbeExec()
6952 z = sqlite3BtreeIntegrityCheck(db, db->aDb[pOp->p5].pBt, &aRoot[1], nRoot, in sqlite3VdbeExec()
6978 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
6979 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
7000 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7012 sqlite3VdbeMemSetInt64(&aMem[pOp->p3], val); in sqlite3VdbeExec()
7044 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7045 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
7046 iSet = pOp->p4.i; in sqlite3VdbeExec()
7056 assert( pOp->p4type==P4_INT32 ); in sqlite3VdbeExec()
7097 pProgram = pOp->p4.pProgram; in sqlite3VdbeExec()
7098 pRt = &aMem[pOp->p3]; in sqlite3VdbeExec()
7112 if( pOp->p5 ){ in sqlite3VdbeExec()
7154 pFrame->pc = (int)(pOp - aOp); in sqlite3VdbeExec()
7180 assert( (int)(pOp - aOp)==pFrame->pc ); in sqlite3VdbeExec()
7215 pOp = &aOp[-1]; in sqlite3VdbeExec()
7234 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
7236 pIn = &pFrame->aMem[pOp->p1 + pFrame->aOp[pFrame->pc].p1]; in sqlite3VdbeExec()
7254 db->nDeferredImmCons += pOp->p2; in sqlite3VdbeExec()
7255 }else if( pOp->p1 ){ in sqlite3VdbeExec()
7256 db->nDeferredCons += pOp->p2; in sqlite3VdbeExec()
7258 p->nFkConstraint += pOp->p2; in sqlite3VdbeExec()
7276 if( pOp->p1 ){ in sqlite3VdbeExec()
7303 pIn1 = &pFrame->aMem[pOp->p1]; in sqlite3VdbeExec()
7305 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7309 pIn2 = &aMem[pOp->p2]; in sqlite3VdbeExec()
7329 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7333 pIn1->u.i -= pOp->p3; in sqlite3VdbeExec()
7359 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7360 pIn3 = &aMem[pOp->p3]; in sqlite3VdbeExec()
7361 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
7389 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7406 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
7459 assert( pOp->p4type==P4_FUNCDEF ); in sqlite3VdbeExec()
7460 n = pOp->p5; in sqlite3VdbeExec()
7461 assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
7462 assert( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem+1 - p->nCursor)+1) ); in sqlite3VdbeExec()
7463 assert( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+n ); in sqlite3VdbeExec()
7470 pCtx->pFunc = pOp->p4.pFunc; in sqlite3VdbeExec()
7471 pCtx->iOp = (int)(pOp - aOp); in sqlite3VdbeExec()
7477 pOp->p4type = P4_FUNCCTX; in sqlite3VdbeExec()
7478 pOp->p4.pCtx = pCtx; in sqlite3VdbeExec()
7481 assert( pOp->p1==(pOp->opcode==OP_AggInverse) ); in sqlite3VdbeExec()
7483 pOp->opcode = OP_AggStep1; in sqlite3VdbeExec()
7492 assert( pOp->p4type==P4_FUNCCTX ); in sqlite3VdbeExec()
7493 pCtx = pOp->p4.pCtx; in sqlite3VdbeExec()
7494 pMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
7497 if( pOp->p1 ){ in sqlite3VdbeExec()
7513 for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i]; in sqlite3VdbeExec()
7519 REGISTER_TRACE(pOp->p2+i, pCtx->argv[i]); in sqlite3VdbeExec()
7528 if( pOp->p1 ){ in sqlite3VdbeExec()
7540 assert( pOp[-1].opcode==OP_CollSeq ); in sqlite3VdbeExec()
7541 i = pOp[-1].p1; in sqlite3VdbeExec()
7584 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
7585 assert( pOp->p3==0 || pOp->opcode==OP_AggValue ); in sqlite3VdbeExec()
7586 pMem = &aMem[pOp->p1]; in sqlite3VdbeExec()
7589 if( pOp->p3 ){ in sqlite3VdbeExec()
7590 memAboutToChange(p, &aMem[pOp->p3]); in sqlite3VdbeExec()
7591 rc = sqlite3VdbeMemAggValue(pMem, &aMem[pOp->p3], pOp->p4.pFunc); in sqlite3VdbeExec()
7592 pMem = &aMem[pOp->p3]; in sqlite3VdbeExec()
7596 rc = sqlite3VdbeMemFinalize(pMem, pOp->p4.pFunc); in sqlite3VdbeExec()
7628 assert( pOp->p2==SQLITE_CHECKPOINT_PASSIVE in sqlite3VdbeExec()
7629 || pOp->p2==SQLITE_CHECKPOINT_FULL in sqlite3VdbeExec()
7630 || pOp->p2==SQLITE_CHECKPOINT_RESTART in sqlite3VdbeExec()
7631 || pOp->p2==SQLITE_CHECKPOINT_TRUNCATE in sqlite3VdbeExec()
7633 rc = sqlite3Checkpoint(db, pOp->p1, pOp->p2, &aRes[1], &aRes[2]); in sqlite3VdbeExec()
7639 for(i=0, pMem = &aMem[pOp->p3]; i<3; i++, pMem++){ in sqlite3VdbeExec()
7667 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
7668 eNew = pOp->p3; in sqlite3VdbeExec()
7677 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
7680 pBt = db->aDb[pOp->p1].pBt; in sqlite3VdbeExec()
7764 rc = sqlite3RunVacuum(&p->zErrMsg, db, pOp->p1, in sqlite3VdbeExec()
7765 pOp->p2 ? &aMem[pOp->p2] : 0); in sqlite3VdbeExec()
7781 assert( pOp->p1>=0 && pOp->p1<db->nDb ); in sqlite3VdbeExec()
7782 assert( DbMaskTest(p->btreeMask, pOp->p1) ); in sqlite3VdbeExec()
7784 pBt = db->aDb[pOp->p1].pBt; in sqlite3VdbeExec()
7813 assert( pOp->p2==0 || pOp->p2==1 ); in sqlite3VdbeExec()
7814 if( !pOp->p1 ){ in sqlite3VdbeExec()
7815 sqlite3ExpirePreparedStatements(db, pOp->p2); in sqlite3VdbeExec()
7817 p->expired = pOp->p2+1; in sqlite3VdbeExec()
7829 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
7830 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
7844 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
7845 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
7869 u8 isWriteLock = (u8)pOp->p3; in sqlite3VdbeExec()
7871 int p1 = pOp->p1; in sqlite3VdbeExec()
7875 rc = sqlite3BtreeLockTable(db->aDb[p1].pBt, pOp->p2, isWriteLock); in sqlite3VdbeExec()
7878 const char *z = pOp->p4.z; in sqlite3VdbeExec()
7900 pVTab = pOp->p4.pVtab; in sqlite3VdbeExec()
7922 assert( (aMem[pOp->p2].flags & MEM_Str)!=0 ); in sqlite3VdbeExec()
7923 assert( (aMem[pOp->p2].flags & MEM_Static)!=0 ); in sqlite3VdbeExec()
7924 rc = sqlite3VdbeMemCopy(&sMem, &aMem[pOp->p2]); in sqlite3VdbeExec()
7929 rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg); in sqlite3VdbeExec()
7945 rc = sqlite3VtabCallDestroy(db, pOp->p1, pOp->p4.z); in sqlite3VdbeExec()
7969 pVtab = pOp->p4.pVtab->pVtab; in sqlite3VdbeExec()
7983 pCur = allocateCursor(p, pOp->p1, 0, CURTYPE_VTAB); in sqlite3VdbeExec()
8011 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
8015 pRhs->pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
8016 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
8057 pQuery = &aMem[pOp->p3]; in sqlite3VdbeExec()
8059 pCur = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
8061 REGISTER_TRACE(pOp->p3, pQuery); in sqlite3VdbeExec()
8078 rc = pModule->xFilter(pVCur, iQuery, pOp->p4.z, nArg, apArg); in sqlite3VdbeExec()
8110 VdbeCursor *pCur = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
8112 assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
8113 pDest = &aMem[pOp->p3]; in sqlite3VdbeExec()
8126 assert( pOp->p5==OPFLAG_NOCHNG || pOp->p5==0 ); in sqlite3VdbeExec()
8127 if( pOp->p5 & OPFLAG_NOCHNG ){ in sqlite3VdbeExec()
8134 rc = pModule->xColumn(pCur->uc.pVCur, &sContext, pOp->p2); in sqlite3VdbeExec()
8141 REGISTER_TRACE(pOp->p3, pDest); in sqlite3VdbeExec()
8162 pCur = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
8205 pVtab = pOp->p4.pVtab->pVtab; in sqlite3VdbeExec()
8206 pName = &aMem[pOp->p1]; in sqlite3VdbeExec()
8210 REGISTER_TRACE(pOp->p1, pName); in sqlite3VdbeExec()
8263 assert( pOp->p2==1 || pOp->p5==OE_Fail || pOp->p5==OE_Rollback in sqlite3VdbeExec()
8264 || pOp->p5==OE_Abort || pOp->p5==OE_Ignore || pOp->p5==OE_Replace in sqlite3VdbeExec()
8269 pVtab = pOp->p4.pVtab->pVtab; in sqlite3VdbeExec()
8275 nArg = pOp->p2; in sqlite3VdbeExec()
8276 assert( pOp->p4type==P4_VTAB ); in sqlite3VdbeExec()
8280 pX = &aMem[pOp->p3]; in sqlite3VdbeExec()
8287 db->vtabOnConflict = pOp->p5; in sqlite3VdbeExec()
8291 if( rc==SQLITE_OK && pOp->p1 ){ in sqlite3VdbeExec()
8295 if( (rc&0xff)==SQLITE_CONSTRAINT && pOp->p4.pVtab->bConstraint ){ in sqlite3VdbeExec()
8296 if( pOp->p5==OE_Ignore ){ in sqlite3VdbeExec()
8299 p->errorAction = ((pOp->p5==OE_Replace) ? OE_Abort : pOp->p5); in sqlite3VdbeExec()
8316 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
8317 pOut->u.i = sqlite3BtreeLastPage(db->aDb[pOp->p1].pBt); in sqlite3VdbeExec()
8336 pOut = out2Prerelease(p, pOp); in sqlite3VdbeExec()
8337 pBt = db->aDb[pOp->p1].pBt; in sqlite3VdbeExec()
8339 if( pOp->p3 ){ in sqlite3VdbeExec()
8341 if( newMax < (unsigned)pOp->p3 ) newMax = (unsigned)pOp->p3; in sqlite3VdbeExec()
8399 assert( pOp->p4type==P4_FUNCCTX ); in sqlite3VdbeExec()
8400 pCtx = pOp->p4.pCtx; in sqlite3VdbeExec()
8406 pOut = &aMem[pOp->p3]; in sqlite3VdbeExec()
8411 for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i]; in sqlite3VdbeExec()
8419 REGISTER_TRACE(pOp->p2+i, pCtx->argv[i]); in sqlite3VdbeExec()
8432 sqlite3VdbeDeleteAuxData(db, &p->pAuxData, pCtx->iOp, pOp->p1); in sqlite3VdbeExec()
8442 REGISTER_TRACE(pOp->p3, pOut); in sqlite3VdbeExec()
8453 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
8467 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
8468 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
8471 h = filterHash(aMem, pOp); in sqlite3VdbeExec()
8475 for(ii=pOp->p3; ii<pOp->p3+pOp->p4.i; ii++){ in sqlite3VdbeExec()
8503 assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); in sqlite3VdbeExec()
8504 pIn1 = &aMem[pOp->p1]; in sqlite3VdbeExec()
8507 h = filterHash(aMem, pOp); in sqlite3VdbeExec()
8511 for(ii=pOp->p3; ii<pOp->p3+pOp->p4.i; ii++){ in sqlite3VdbeExec()
8570 assert( pOp->p4.z==0 || strncmp(pOp->p4.z, "-" "- ", 3)==0 ); in sqlite3VdbeExec()
8573 assert( pOp==p->aOp || pOp->opcode==OP_Trace ); in sqlite3VdbeExec()
8578 && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0 in sqlite3VdbeExec()
8596 zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql); in sqlite3VdbeExec()
8607 && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0 in sqlite3VdbeExec()
8613 assert( pOp->p2>0 ); in sqlite3VdbeExec()
8614 if( pOp->p1>=sqlite3GlobalConfig.iOnceResetThreshold ){ in sqlite3VdbeExec()
8615 if( pOp->opcode==OP_Trace ) break; in sqlite3VdbeExec()
8619 pOp->p1 = 0; in sqlite3VdbeExec()
8621 pOp->p1++; in sqlite3VdbeExec()
8637 assert( pOp->p1>=0 && pOp->p1<p->nCursor ); in sqlite3VdbeExec()
8638 assert( pOp->p4type==P4_EXPR ); in sqlite3VdbeExec()
8639 pC = p->apCsr[pOp->p1]; in sqlite3VdbeExec()
8643 pOp->p4.pExpr, aMem); in sqlite3VdbeExec()
8700 assert( pOp->p1>0 ); in sqlite3VdbeExec()
8701 assert( pOp->p1+pOp->p2<=(p->nMem+1 - p->nCursor)+1 ); in sqlite3VdbeExec()
8702 pMem = &aMem[pOp->p1]; in sqlite3VdbeExec()
8703 constMask = pOp->p3; in sqlite3VdbeExec()
8704 for(i=0; i<pOp->p2; i++, pMem++){ in sqlite3VdbeExec()
8707 if( i<32 && pOp->p5 ) MemSetTypeFlag(pMem, MEM_Undefined); in sqlite3VdbeExec()
8726 assert( pOp->opcode==OP_Noop || pOp->opcode==OP_Explain ); in sqlite3VdbeExec()
8753 assert( pOp>=&aOp[-1] && pOp<&aOp[p->nOp-1] ); in sqlite3VdbeExec()
8805 (int)(pOp - aOp), p->zSql, p->zErrMsg); in sqlite3VdbeExec()