• Home
  • Raw
  • Download

Lines Matching refs:pLevel

129096   WhereLevel *pLevel,             /* Scan to write OP_Explain opcode for */
129292 WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */
129302 struct SrcList_item *pItem = &pTabList->a[pLevel->iFrom];
129313 pLoop = pLevel->pWLoop;
129463 static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm){
129467 && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_FromJoin))
129468 && (pLevel->notReady & pTerm->prereqAll)==0
129662 WhereLevel *pLevel, /* The level of the FROM clause we are working on */
129671 assert( pLevel->pWLoop->aLTerm[iEq]==pTerm );
129683 WhereLoop *pLoop = pLevel->pWLoop;
129701 disableTerm(pLevel, pTerm);
129736 if( pLevel->u.in.nIn==0 ){
129737 pLevel->addrNxt = sqlite3VdbeMakeLabel(v);
129740 i = pLevel->u.in.nIn;
129741 pLevel->u.in.nIn += nEq;
129742 pLevel->u.in.aInLoop =
129743 sqlite3DbReallocOrFree(pParse->db, pLevel->u.in.aInLoop,
129744 sizeof(pLevel->u.in.aInLoop[0])*pLevel->u.in.nIn);
129745 pIn = pLevel->u.in.aInLoop;
129770 pLevel->u.in.nIn = 0;
129775 disableTerm(pLevel, pTerm);
129826 WhereLevel *pLevel, /* Which nested loop of the FROM we are coding */
129843 pLoop = pLevel->pWLoop;
129860 int iIdxCur = pLevel->iIdxCur;
129866 pLevel->addrSkip = sqlite3VdbeAddOp4Int(v, (bRev?OP_SeekLT:OP_SeekGT),
129889 r1 = codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, regBase+j);
129909 sqlite3VdbeAddOp2(v, OP_IsNull, regBase+j, pLevel->addrBrk);
129946 WhereLevel *pLevel, /* The loop that contains the LIKE operator */
129951 assert( pLevel->iLikeRepCntr>0 );
129956 pOp->p3 = (int)(pLevel->iLikeRepCntr>>1); /* Register holding counter */
129957 pOp->p5 = (u8)(pLevel->iLikeRepCntr&1); /* ASC or DESC */
130080 WhereLevel *pLevel, /* Which loop to provide hints for */
130087 WhereLoop *pLoop = pLevel->pWLoop;
130096 iCur = pLevel->iTabCur;
130097 assert( iCur==pWInfo->pTabList->a[pLevel->iFrom].iCursor );
130099 sHint.iIdxCur = pLevel->iIdxCur;
130108 if( pTerm->prereqAll & pLevel->notReady ) continue;
130339 WhereLevel *pLevel; /* The where level to be coded */
130359 pLevel = &pWInfo->a[iLevel];
130360 pLoop = pLevel->pWLoop;
130361 pTabItem = &pWInfo->pTabList->a[pLevel->iFrom];
130363 pLevel->notReady = notReady & ~sqlite3WhereGetMask(&pWInfo->sMaskSet, iCur);
130379 addrBrk = pLevel->addrBrk = pLevel->addrNxt = sqlite3VdbeMakeLabel(v);
130380 addrCont = pLevel->addrCont = sqlite3VdbeMakeLabel(v);
130386 if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){
130387 pLevel->iLeftJoin = ++pParse->nMem;
130388 sqlite3VdbeAddOp2(v, OP_Integer, 0, pLevel->iLeftJoin);
130401 pLevel->p2 = sqlite3VdbeAddOp2(v, OP_Yield, regYield, addrBrk);
130404 pLevel->op = OP_Goto;
130419 addrNotFound = pLevel->addrBrk;
130425 codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, iTarget);
130426 addrNotFound = pLevel->addrNxt;
130439 pLevel->p1 = iCur;
130440 pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;
130441 pLevel->p2 = sqlite3VdbeCurrentAddr(v);
130442 iIn = pLevel->u.in.nIn;
130446 disableTerm(pLevel, pTerm);
130456 assert( pLevel->u.in.aInLoop!=0 || db->mallocFailed );
130459 pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[--iIn].addrInTop);
130476 sqlite3ExprIfFalse(pParse, pCompare, pLevel->addrCont, 0);
130509 iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg);
130511 addrNxt = pLevel->addrNxt;
130517 pLevel->op = OP_Noop;
130539 codeCursorHint(pTabItem, pWInfo, pLevel, pEnd);
130569 disableTerm(pLevel, pStart);
130602 disableTerm(pLevel, pEnd);
130606 pLevel->op = bRev ? OP_Prev : OP_Next;
130607 pLevel->p1 = iCur;
130608 pLevel->p2 = start;
130609 assert( pLevel->p5==0 );
130688 iIdxCur = pLevel->iIdxCur;
130729 pLevel->iLikeRepCntr = (u32)++pParse->nMem;
130730 sqlite3VdbeAddOp2(v, OP_Integer, 1, (int)pLevel->iLikeRepCntr);
130732 pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v);
130738 pLevel->iLikeRepCntr <<=1;
130739 pLevel->iLikeRepCntr |= bRev ^ (pIdx->aSortOrder[nEq]==SQLITE_SO_DESC);
130767 codeCursorHint(pTabItem, pWInfo, pLevel, pRangeEnd);
130768 regBase = codeAllEqualityTerms(pParse,pLevel,bRev,nExtraReg,&zStartAff);
130773 addrNxt = pLevel->addrNxt;
130788 whereLikeOptimizationStringFixup(v, pLevel, pRangeStart);
130801 disableTerm(pLevel, pRangeStart);
130838 whereLikeOptimizationStringFixup(v, pLevel, pRangeEnd);
130855 disableTerm(pLevel, pRangeEnd);
130869 pLevel->p2 = sqlite3VdbeCurrentAddr(v);
130917 pLevel->op = OP_Noop;
130919 pLevel->op = OP_Prev;
130921 pLevel->op = OP_Next;
130923 pLevel->p1 = iIdxCur;
130924 pLevel->p3 = (pLoop->wsFlags&WHERE_UNQ_WANTED)!=0 ? 1:0;
130926 pLevel->p5 = SQLITE_STMTSTATUS_FULLSCAN_STEP;
130928 assert( pLevel->p5==0 );
130999 pLevel->op = OP_Return;
131000 pLevel->p1 = regReturn;
131018 memcpy(&pOrTab->a[k], &origSrc[pLevel[k].iFrom], sizeof(pOrTab->a[k]));
131106 pParse, pOrTab, &pSubWInfo->a[0], iLevel, pLevel->iFrom, 0
131205 pLevel->u.pCovidx = pCov;
131206 if( pCov ) pLevel->iIdxCur = iCovCur;
131212 sqlite3VdbeGoto(v, pLevel->addrBrk);
131216 if( !untestedTerms ) disableTerm(pLevel, pTerm);
131230 pLevel->op = OP_Noop;
131232 codeCursorHint(pTabItem, pWInfo, pLevel, 0);
131233 pLevel->op = aStep[bRev];
131234 pLevel->p1 = iCur;
131235 pLevel->p2 = 1 + sqlite3VdbeAddOp2(v, aStart[bRev], iCur, addrHalt);
131238 pLevel->p5 = SQLITE_STMTSTATUS_FULLSCAN_STEP;
131243 pLevel->addrVisit = sqlite3VdbeCurrentAddr(v);
131269 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){
131277 if( pLevel->iLeftJoin && !ExprHasProperty(pE, EP_FromJoin) ){
131281 if( iLoop==1 && !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx) ){
131299 u32 x = pLevel->iLikeRepCntr;
131333 if( pLevel->iLeftJoin ) continue;
131336 assert( (pTerm->prereqRight & pLevel->notReady)!=0 );
131353 if( pLevel->iLeftJoin ){
131354 pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
131355 sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
131362 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){
131372 return pLevel->notReady;
133564 WhereLevel *pLevel /* Write new index here */
133601 pLoop = pLevel->pWLoop;
133706 assert( pLevel->iIdxCur>=0 );
133707 pLevel->iIdxCur = pParse->nTab++;
133708 sqlite3VdbeAddOp2(v, OP_OpenAutoindex, pLevel->iIdxCur, nKeyCol+1);
133714 pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom];
133723 addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v);
133732 pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0
133734 sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord);
133740 translateColumnToCopy(pParse, addrTop, pLevel->iTabCur,
133745 sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v);
134796 WhereLevel *pLevel = &pWInfo->a[i];
134797 if( pLevel->pWLoop && (pLevel->pWLoop->wsFlags & WHERE_IN_ABLE) ){
134798 sqlite3DbFree(db, pLevel->u.in.aInLoop);
137104 WhereLevel *pLevel = pWInfo->a + iLoop;
137105 pLevel->pWLoop = pWLoop = pFrom->aLoop[iLoop];
137106 pLevel->iFrom = pWLoop->iTab;
137107 pLevel->iTabCur = pWInfo->pTabList->a[pLevel->iFrom].iCursor;
137393 WhereLevel *pLevel; /* A single level in pWInfo->a[] */
137751 for(ii=0, pLevel=pWInfo->a; ii<nTabList; ii++, pLevel++){
137756 pTabItem = &pTabList->a[pLevel->iFrom];
137759 pLoop = pLevel->pWLoop;
137780 assert( pTabItem->iCursor==pLevel->iTabCur );
137816 iIndexCur = pLevel->iTabCur;
137834 pLevel->iIdxCur = iIndexCur;
137877 pLevel = &pWInfo->a[ii];
137878 wsFlags = pLevel->pWLoop->wsFlags;
137880 if( (pLevel->pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 ){
137882 &pTabList->a[pLevel->iFrom], notReady, pLevel);
137887 pParse, pTabList, pLevel, ii, pLevel->iFrom, wctrlFlags
137889 pLevel->addrBody = sqlite3VdbeCurrentAddr(v);
137891 pWInfo->iContinue = pLevel->addrCont;
137893 sqlite3WhereAddScanStatus(v, pTabList, pLevel, addrExplain);
137918 WhereLevel *pLevel;
137929 pLevel = &pWInfo->a[i];
137930 pLoop = pLevel->pWLoop;
137931 if( pLevel->op!=OP_Noop ){
137946 sqlite3VdbeAddOp3(v, OP_Column, pLevel->iIdxCur, j, r1+j);
137949 op = pLevel->op==OP_Prev ? OP_SeekLT : OP_SeekGT;
137950 addrSeek = sqlite3VdbeAddOp4Int(v, op, pLevel->iIdxCur, 0, r1, n);
137953 sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2);
137957 sqlite3VdbeResolveLabel(v, pLevel->addrCont);
137958 sqlite3VdbeAddOp3(v, pLevel->op, pLevel->p1, pLevel->p2, pLevel->p3);
137959 sqlite3VdbeChangeP5(v, pLevel->p5);
137961 VdbeCoverageIf(v, pLevel->op==OP_Next);
137962 VdbeCoverageIf(v, pLevel->op==OP_Prev);
137963 VdbeCoverageIf(v, pLevel->op==OP_VNext);
137968 sqlite3VdbeResolveLabel(v, pLevel->addrCont);
137970 if( pLoop->wsFlags & WHERE_IN_ABLE && pLevel->u.in.nIn>0 ){
137973 sqlite3VdbeResolveLabel(v, pLevel->addrNxt);
137974 for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){
137985 sqlite3VdbeResolveLabel(v, pLevel->addrBrk);
137986 if( pLevel->addrSkip ){
137987 sqlite3VdbeGoto(v, pLevel->addrSkip);
137989 sqlite3VdbeJumpHere(v, pLevel->addrSkip);
137990 sqlite3VdbeJumpHere(v, pLevel->addrSkip-2);
137993 if( pLevel->addrLikeRep ){
137994 sqlite3VdbeAddOp2(v, OP_DecrJumpZero, (int)(pLevel->iLikeRepCntr>>1),
137995 pLevel->addrLikeRep);
137999 if( pLevel->iLeftJoin ){
138001 addr = sqlite3VdbeAddOp1(v, OP_IfPos, pLevel->iLeftJoin); VdbeCoverage(v);
138004 assert( pLevel->iTabCur==pTabList->a[pLevel->iFrom].iCursor );
138005 sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iTabCur);
138008 || ((ws & WHERE_MULTI_OR) && pLevel->u.pCovidx)
138010 sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iIdxCur);
138012 if( pLevel->op==OP_Return ){
138013 sqlite3VdbeAddOp2(v, OP_Gosub, pLevel->p1, pLevel->addrFirst);
138015 sqlite3VdbeGoto(v, pLevel->addrFirst);
138020 pWInfo->pTabList->a[pLevel->iFrom].pTab->zName));
138029 for(i=0, pLevel=pWInfo->a; i<pWInfo->nLevel; i++, pLevel++){
138033 struct SrcList_item *pTabItem = &pTabList->a[pLevel->iFrom];
138036 pLoop = pLevel->pWLoop;
138044 translateColumnToCopy(pParse, pLevel->addrBody, pLevel->iTabCur,
138063 pIdx = pLevel->u.pCovidx;
138070 k = pLevel->addrBody;
138073 if( pOp->p1!=pLevel->iTabCur ) continue;
138089 pOp->p1 = pLevel->iIdxCur;
138094 pOp->p1 = pLevel->iIdxCur;
138097 pOp->p1 = pLevel->iIdxCur;