pLevel 117873 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel /* Write new index here */ pLevel 117907 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 118012 ext/sqlite3/libsqlite/sqlite3.c assert( pLevel->iIdxCur>=0 ); pLevel 118013 ext/sqlite3/libsqlite/sqlite3.c pLevel->iIdxCur = pParse->nTab++; pLevel 118014 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_OpenAutoindex, pLevel->iIdxCur, nKeyCol+1); pLevel 118020 ext/sqlite3/libsqlite/sqlite3.c addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v); pLevel 118027 ext/sqlite3/libsqlite/sqlite3.c sqlite3GenerateIndexKey(pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0); pLevel 118028 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord); pLevel 118031 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); pLevel 118885 ext/sqlite3/libsqlite/sqlite3.c static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm){ pLevel 118889 ext/sqlite3/libsqlite/sqlite3.c && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_FromJoin)) pLevel 118890 ext/sqlite3/libsqlite/sqlite3.c && (pLevel->notReady & pTerm->prereqAll)==0 pLevel 118959 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel, /* The level of the FROM clause we are working on */ pLevel 118979 ext/sqlite3/libsqlite/sqlite3.c WhereLoop *pLoop = pLevel->pWLoop; pLevel 119002 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->u.in.nIn==0 ){ pLevel 119003 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrNxt = sqlite3VdbeMakeLabel(v); pLevel 119005 ext/sqlite3/libsqlite/sqlite3.c pLevel->u.in.nIn++; pLevel 119006 ext/sqlite3/libsqlite/sqlite3.c pLevel->u.in.aInLoop = pLevel 119007 ext/sqlite3/libsqlite/sqlite3.c sqlite3DbReallocOrFree(pParse->db, pLevel->u.in.aInLoop, pLevel 119008 ext/sqlite3/libsqlite/sqlite3.c sizeof(pLevel->u.in.aInLoop[0])*pLevel->u.in.nIn); pLevel 119009 ext/sqlite3/libsqlite/sqlite3.c pIn = pLevel->u.in.aInLoop; pLevel 119011 ext/sqlite3/libsqlite/sqlite3.c pIn += pLevel->u.in.nIn - 1; pLevel 119021 ext/sqlite3/libsqlite/sqlite3.c pLevel->u.in.nIn = 0; pLevel 119025 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pTerm); pLevel 119076 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel, /* Which nested loop of the FROM we are coding */ pLevel 119093 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 119112 ext/sqlite3/libsqlite/sqlite3.c int iIdxCur = pLevel->iIdxCur; pLevel 119118 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrSkip = sqlite3VdbeAddOp4Int(v, (bRev?OP_SeekLT:OP_SeekGT), pLevel 119141 ext/sqlite3/libsqlite/sqlite3.c r1 = codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, regBase+j); pLevel 119155 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_IsNull, regBase+j, pLevel->addrBrk); pLevel 119251 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ pLevel 119261 ext/sqlite3/libsqlite/sqlite3.c struct SrcList_item *pItem = &pTabList->a[pLevel->iFrom]; pLevel 119272 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 119398 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel, /* The loop that contains the LIKE operator */ pLevel 119403 ext/sqlite3/libsqlite/sqlite3.c assert( pLevel->iLikeRepCntr>0 ); pLevel 119408 ext/sqlite3/libsqlite/sqlite3.c pOp->p3 = pLevel->iLikeRepCntr; pLevel 119427 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel; /* The where level to be coded */ pLevel 119444 ext/sqlite3/libsqlite/sqlite3.c pLevel = &pWInfo->a[iLevel]; pLevel 119445 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 119446 ext/sqlite3/libsqlite/sqlite3.c pTabItem = &pWInfo->pTabList->a[pLevel->iFrom]; pLevel 119448 ext/sqlite3/libsqlite/sqlite3.c pLevel->notReady = notReady & ~getMask(&pWInfo->sMaskSet, iCur); pLevel 119464 ext/sqlite3/libsqlite/sqlite3.c addrBrk = pLevel->addrBrk = pLevel->addrNxt = sqlite3VdbeMakeLabel(v); pLevel 119465 ext/sqlite3/libsqlite/sqlite3.c addrCont = pLevel->addrCont = sqlite3VdbeMakeLabel(v); pLevel 119471 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->iFrom>0 && (pTabItem[0].jointype & JT_LEFT)!=0 ){ pLevel 119472 ext/sqlite3/libsqlite/sqlite3.c pLevel->iLeftJoin = ++pParse->nMem; pLevel 119473 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, 0, pLevel->iLeftJoin); pLevel 119481 ext/sqlite3/libsqlite/sqlite3.c pLevel->p2 = sqlite3VdbeAddOp2(v, OP_Yield, regYield, addrBrk); pLevel 119484 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Goto; pLevel 119498 ext/sqlite3/libsqlite/sqlite3.c addrNotFound = pLevel->addrBrk; pLevel 119504 ext/sqlite3/libsqlite/sqlite3.c codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, iTarget); pLevel 119505 ext/sqlite3/libsqlite/sqlite3.c addrNotFound = pLevel->addrNxt; pLevel 119519 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pLoop->aLTerm[j]); pLevel 119522 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_VNext; pLevel 119523 ext/sqlite3/libsqlite/sqlite3.c pLevel->p1 = iCur; pLevel 119524 ext/sqlite3/libsqlite/sqlite3.c pLevel->p2 = sqlite3VdbeCurrentAddr(v); pLevel 119545 ext/sqlite3/libsqlite/sqlite3.c iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg); pLevel 119547 ext/sqlite3/libsqlite/sqlite3.c addrNxt = pLevel->addrNxt; pLevel 119554 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Noop; pLevel 119607 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pStart); pLevel 119627 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pEnd); pLevel 119630 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = bRev ? OP_Prev : OP_Next; pLevel 119631 ext/sqlite3/libsqlite/sqlite3.c pLevel->p1 = iCur; pLevel 119632 ext/sqlite3/libsqlite/sqlite3.c pLevel->p2 = start; pLevel 119633 ext/sqlite3/libsqlite/sqlite3.c assert( pLevel->p5==0 ); pLevel 119711 ext/sqlite3/libsqlite/sqlite3.c iIdxCur = pLevel->iIdxCur; pLevel 119751 ext/sqlite3/libsqlite/sqlite3.c pLevel->iLikeRepCntr = ++pParse->nMem; pLevel 119756 ext/sqlite3/libsqlite/sqlite3.c pLevel->iLikeRepCntr); pLevel 119758 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v); pLevel 119773 ext/sqlite3/libsqlite/sqlite3.c regBase = codeAllEqualityTerms(pParse,pLevel,bRev,nExtraReg,&zStartAff); pLevel 119776 ext/sqlite3/libsqlite/sqlite3.c addrNxt = pLevel->addrNxt; pLevel 119802 ext/sqlite3/libsqlite/sqlite3.c whereLikeOptimizationStringFixup(v, pLevel, pRangeStart); pLevel 119848 ext/sqlite3/libsqlite/sqlite3.c whereLikeOptimizationStringFixup(v, pLevel, pRangeEnd); pLevel 119870 ext/sqlite3/libsqlite/sqlite3.c pLevel->p2 = sqlite3VdbeCurrentAddr(v); pLevel 119883 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pRangeStart); pLevel 119884 ext/sqlite3/libsqlite/sqlite3.c disableTerm(pLevel, pRangeEnd); pLevel 119907 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Noop; pLevel 119909 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Prev; pLevel 119911 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Next; pLevel 119913 ext/sqlite3/libsqlite/sqlite3.c pLevel->p1 = iIdxCur; pLevel 119914 ext/sqlite3/libsqlite/sqlite3.c pLevel->p3 = (pLoop->wsFlags&WHERE_UNQ_WANTED)!=0 ? 1:0; pLevel 119916 ext/sqlite3/libsqlite/sqlite3.c pLevel->p5 = SQLITE_STMTSTATUS_FULLSCAN_STEP; pLevel 119918 ext/sqlite3/libsqlite/sqlite3.c assert( pLevel->p5==0 ); pLevel 119988 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Return; pLevel 119989 ext/sqlite3/libsqlite/sqlite3.c pLevel->p1 = regReturn; pLevel 120007 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pOrTab->a[k], &origSrc[pLevel[k].iFrom], sizeof(pOrTab->a[k])); pLevel 120096 ext/sqlite3/libsqlite/sqlite3.c pParse, pOrTab, &pSubWInfo->a[0], iLevel, pLevel->iFrom, 0 pLevel 120194 ext/sqlite3/libsqlite/sqlite3.c pLevel->u.pCovidx = pCov; pLevel 120195 ext/sqlite3/libsqlite/sqlite3.c if( pCov ) pLevel->iIdxCur = iCovCur; pLevel 120201 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrBrk); pLevel 120205 ext/sqlite3/libsqlite/sqlite3.c if( !untestedTerms ) disableTerm(pLevel, pTerm); pLevel 120219 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = OP_Noop; pLevel 120221 ext/sqlite3/libsqlite/sqlite3.c pLevel->op = aStep[bRev]; pLevel 120222 ext/sqlite3/libsqlite/sqlite3.c pLevel->p1 = iCur; pLevel 120223 ext/sqlite3/libsqlite/sqlite3.c pLevel->p2 = 1 + sqlite3VdbeAddOp2(v, aStart[bRev], iCur, addrBrk); pLevel 120226 ext/sqlite3/libsqlite/sqlite3.c pLevel->p5 = SQLITE_STMTSTATUS_FULLSCAN_STEP; pLevel 120231 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrVisit = sqlite3VdbeCurrentAddr(v); pLevel 120243 ext/sqlite3/libsqlite/sqlite3.c if( (pTerm->prereqAll & pLevel->notReady)!=0 ){ pLevel 120251 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->iLeftJoin && !ExprHasProperty(pE, EP_FromJoin) ){ pLevel 120255 ext/sqlite3/libsqlite/sqlite3.c assert( pLevel->iLikeRepCntr>0 ); pLevel 120256 ext/sqlite3/libsqlite/sqlite3.c skipLikeAddr = sqlite3VdbeAddOp1(v, OP_IfNot, pLevel->iLikeRepCntr); pLevel 120278 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->iLeftJoin ) continue; pLevel 120281 ext/sqlite3/libsqlite/sqlite3.c assert( (pTerm->prereqRight & pLevel->notReady)!=0 ); pLevel 120300 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->iLeftJoin ){ pLevel 120301 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrFirst = sqlite3VdbeCurrentAddr(v); pLevel 120302 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin); pLevel 120309 ext/sqlite3/libsqlite/sqlite3.c if( (pTerm->prereqAll & pLevel->notReady)!=0 ){ pLevel 120319 ext/sqlite3/libsqlite/sqlite3.c return pLevel->notReady; pLevel 120481 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel = &pWInfo->a[i]; pLevel 120482 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->pWLoop && (pLevel->pWLoop->wsFlags & WHERE_IN_ABLE) ){ pLevel 120483 ext/sqlite3/libsqlite/sqlite3.c sqlite3DbFree(db, pLevel->u.in.aInLoop); pLevel 122397 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel = pWInfo->a + iLoop; pLevel 122398 ext/sqlite3/libsqlite/sqlite3.c pLevel->pWLoop = pWLoop = pFrom->aLoop[iLoop]; pLevel 122399 ext/sqlite3/libsqlite/sqlite3.c pLevel->iFrom = pWLoop->iTab; pLevel 122400 ext/sqlite3/libsqlite/sqlite3.c pLevel->iTabCur = pWInfo->pTabList->a[pLevel->iFrom].iCursor; pLevel 122636 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel; /* A single level in pWInfo->a[] */ pLevel 122906 ext/sqlite3/libsqlite/sqlite3.c for(ii=0, pLevel=pWInfo->a; ii<nTabList; ii++, pLevel++){ pLevel 122911 ext/sqlite3/libsqlite/sqlite3.c pTabItem = &pTabList->a[pLevel->iFrom]; pLevel 122914 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 122935 ext/sqlite3/libsqlite/sqlite3.c assert( pTabItem->iCursor==pLevel->iTabCur ); pLevel 122960 ext/sqlite3/libsqlite/sqlite3.c iIndexCur = pLevel->iTabCur; pLevel 122978 ext/sqlite3/libsqlite/sqlite3.c pLevel->iIdxCur = iIndexCur; pLevel 123007 ext/sqlite3/libsqlite/sqlite3.c pLevel = &pWInfo->a[ii]; pLevel 123008 ext/sqlite3/libsqlite/sqlite3.c wsFlags = pLevel->pWLoop->wsFlags; pLevel 123010 ext/sqlite3/libsqlite/sqlite3.c if( (pLevel->pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 ){ pLevel 123012 ext/sqlite3/libsqlite/sqlite3.c &pTabList->a[pLevel->iFrom], notReady, pLevel); pLevel 123017 ext/sqlite3/libsqlite/sqlite3.c pParse, pTabList, pLevel, ii, pLevel->iFrom, wctrlFlags pLevel 123019 ext/sqlite3/libsqlite/sqlite3.c pLevel->addrBody = sqlite3VdbeCurrentAddr(v); pLevel 123021 ext/sqlite3/libsqlite/sqlite3.c pWInfo->iContinue = pLevel->addrCont; pLevel 123023 ext/sqlite3/libsqlite/sqlite3.c addScanStatus(v, pTabList, pLevel, addrExplain); pLevel 123048 ext/sqlite3/libsqlite/sqlite3.c WhereLevel *pLevel; pLevel 123059 ext/sqlite3/libsqlite/sqlite3.c pLevel = &pWInfo->a[i]; pLevel 123060 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 123061 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeResolveLabel(v, pLevel->addrCont); pLevel 123062 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->op!=OP_Noop ){ pLevel 123063 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, pLevel->op, pLevel->p1, pLevel->p2, pLevel->p3); pLevel 123064 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeChangeP5(v, pLevel->p5); pLevel 123066 ext/sqlite3/libsqlite/sqlite3.c VdbeCoverageIf(v, pLevel->op==OP_Next); pLevel 123067 ext/sqlite3/libsqlite/sqlite3.c VdbeCoverageIf(v, pLevel->op==OP_Prev); pLevel 123068 ext/sqlite3/libsqlite/sqlite3.c VdbeCoverageIf(v, pLevel->op==OP_VNext); pLevel 123070 ext/sqlite3/libsqlite/sqlite3.c if( pLoop->wsFlags & WHERE_IN_ABLE && pLevel->u.in.nIn>0 ){ pLevel 123073 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeResolveLabel(v, pLevel->addrNxt); pLevel 123074 ext/sqlite3/libsqlite/sqlite3.c for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){ pLevel 123083 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeResolveLabel(v, pLevel->addrBrk); pLevel 123084 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->addrSkip ){ pLevel 123085 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrSkip); pLevel 123087 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeJumpHere(v, pLevel->addrSkip); pLevel 123088 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeJumpHere(v, pLevel->addrSkip-2); pLevel 123090 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->addrLikeRep ){ pLevel 123092 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3VdbeGetOp(v, pLevel->addrLikeRep-1)->p1 ){ pLevel 123097 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, op, pLevel->iLikeRepCntr, pLevel->addrLikeRep); pLevel 123100 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->iLeftJoin ){ pLevel 123101 ext/sqlite3/libsqlite/sqlite3.c addr = sqlite3VdbeAddOp1(v, OP_IfPos, pLevel->iLeftJoin); VdbeCoverage(v); pLevel 123108 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iIdxCur); pLevel 123110 ext/sqlite3/libsqlite/sqlite3.c if( pLevel->op==OP_Return ){ pLevel 123111 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Gosub, pLevel->p1, pLevel->addrFirst); pLevel 123113 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrFirst); pLevel 123118 ext/sqlite3/libsqlite/sqlite3.c pWInfo->pTabList->a[pLevel->iFrom].pTab->zName)); pLevel 123127 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pLevel=pWInfo->a; i<pWInfo->nLevel; i++, pLevel++){ pLevel 123131 ext/sqlite3/libsqlite/sqlite3.c struct SrcList_item *pTabItem = &pTabList->a[pLevel->iFrom]; pLevel 123134 ext/sqlite3/libsqlite/sqlite3.c pLoop = pLevel->pWLoop; pLevel 123142 ext/sqlite3/libsqlite/sqlite3.c k = pLevel->addrBody; pLevel 123145 ext/sqlite3/libsqlite/sqlite3.c if( pOp->p1!=pLevel->iTabCur ) continue; pLevel 123175 ext/sqlite3/libsqlite/sqlite3.c && pLevel->iIdxCur!=pWInfo->aiCurOnePass[1] pLevel 123177 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp1(v, OP_Close, pLevel->iIdxCur); pLevel 123195 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLevel->u.pCovidx; pLevel 123199 ext/sqlite3/libsqlite/sqlite3.c k = pLevel->addrBody; pLevel 123202 ext/sqlite3/libsqlite/sqlite3.c if( pOp->p1!=pLevel->iTabCur ) continue; pLevel 123213 ext/sqlite3/libsqlite/sqlite3.c pOp->p1 = pLevel->iIdxCur; pLevel 123217 ext/sqlite3/libsqlite/sqlite3.c pOp->p1 = pLevel->iIdxCur;