Lines Matching refs:pLevel
825 WhereLevel *pLevel /* Write new index here */ in constructAutomaticIndex() argument
862 pLoop = pLevel->pWLoop; in constructAutomaticIndex()
973 assert( pLevel->iIdxCur>=0 ); in constructAutomaticIndex()
974 pLevel->iIdxCur = pParse->nTab++; in constructAutomaticIndex()
975 sqlite3VdbeAddOp2(v, OP_OpenAutoindex, pLevel->iIdxCur, nKeyCol+1); in constructAutomaticIndex()
979 pLevel->regFilter = ++pParse->nMem; in constructAutomaticIndex()
980 sqlite3VdbeAddOp2(v, OP_Blob, 10000, pLevel->regFilter); in constructAutomaticIndex()
984 pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom]; in constructAutomaticIndex()
993 addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v); in constructAutomaticIndex()
1002 pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0 in constructAutomaticIndex()
1004 if( pLevel->regFilter ){ in constructAutomaticIndex()
1005 sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, in constructAutomaticIndex()
1008 sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord); in constructAutomaticIndex()
1014 assert( pLevel->iIdxCur>0 ); in constructAutomaticIndex()
1015 translateColumnToCopy(pParse, addrTop, pLevel->iTabCur, in constructAutomaticIndex()
1016 pTabItem->regResult, pLevel->iIdxCur); in constructAutomaticIndex()
1020 sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); in constructAutomaticIndex()
1057 WhereLevel *pLevel, /* Make a Bloom filter for this FROM term */ in sqlite3ConstructBloomFilter() argument
1067 WhereLoop *pLoop = pLevel->pWLoop; /* The loop being coded */ in sqlite3ConstructBloomFilter()
1079 sqlite3WhereExplainBloomFilter(pParse, pWInfo, pLevel); in sqlite3ConstructBloomFilter()
1081 iCur = pLevel->iTabCur; in sqlite3ConstructBloomFilter()
1082 pLevel->regFilter = ++pParse->nMem; in sqlite3ConstructBloomFilter()
1092 pItem = &pWInfo->pTabList->a[pLevel->iFrom]; in sqlite3ConstructBloomFilter()
1102 sqlite3VdbeAddOp2(v, OP_Blob, (int)sz, pLevel->regFilter); in sqlite3ConstructBloomFilter()
1117 sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, r1, 1); in sqlite3ConstructBloomFilter()
1129 sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, r1, n); in sqlite3ConstructBloomFilter()
1133 sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); in sqlite3ConstructBloomFilter()
1140 pLevel = &pWInfo->a[iLevel]; in sqlite3ConstructBloomFilter()
1141 pTabItem = &pWInfo->pTabList->a[pLevel->iFrom]; in sqlite3ConstructBloomFilter()
1143 pLoop = pLevel->pWLoop; in sqlite3ConstructBloomFilter()
5093 WhereLevel *pLevel = pWInfo->a + iLoop; in wherePathSolver() local
5094 pLevel->pWLoop = pWLoop = pFrom->aLoop[iLoop]; in wherePathSolver()
5095 pLevel->iFrom = pWLoop->iTab; in wherePathSolver()
5096 pLevel->iTabCur = pWInfo->pTabList->a[pLevel->iFrom].iCursor; in wherePathSolver()
5639 WhereLevel *pLevel; /* A single level in pWInfo->a[] */ in sqlite3WhereBegin() local
5989 for(ii=0, pLevel=pWInfo->a; ii<nTabList; ii++, pLevel++){ in sqlite3WhereBegin()
5994 pTabItem = &pTabList->a[pLevel->iFrom]; in sqlite3WhereBegin()
5997 pLoop = pLevel->pWLoop; in sqlite3WhereBegin()
6020 assert( pTabItem->iCursor==pLevel->iTabCur ); in sqlite3WhereBegin()
6063 iIndexCur = pLevel->iTabCur; in sqlite3WhereBegin()
6084 pLevel->iIdxCur = iIndexCur; in sqlite3WhereBegin()
6120 && (pLevel->pRJ = sqlite3WhereMalloc(pWInfo, sizeof(WhereRightJoin)))!=0 in sqlite3WhereBegin()
6122 WhereRightJoin *pRJ = pLevel->pRJ; in sqlite3WhereBegin()
6163 pLevel = &pWInfo->a[ii]; in sqlite3WhereBegin()
6164 wsFlags = pLevel->pWLoop->wsFlags; in sqlite3WhereBegin()
6165 pSrc = &pTabList->a[pLevel->iFrom]; in sqlite3WhereBegin()
6179 &pTabList->a[pLevel->iFrom], notReady, pLevel); in sqlite3WhereBegin()
6182 sqlite3ConstructBloomFilter(pWInfo, ii, pLevel, notReady); in sqlite3WhereBegin()
6187 pParse, pTabList, pLevel, wctrlFlags in sqlite3WhereBegin()
6189 pLevel->addrBody = sqlite3VdbeCurrentAddr(v); in sqlite3WhereBegin()
6190 notReady = sqlite3WhereCodeOneLoopStart(pParse,v,pWInfo,ii,pLevel,notReady); in sqlite3WhereBegin()
6191 pWInfo->iContinue = pLevel->addrCont; in sqlite3WhereBegin()
6193 sqlite3WhereAddScanStatus(v, pTabList, pLevel, addrExplain); in sqlite3WhereBegin()
6259 WhereLevel *pLevel; in sqlite3WhereEnd() local
6271 pLevel = &pWInfo->a[i]; in sqlite3WhereEnd()
6272 if( pLevel->pRJ ){ in sqlite3WhereEnd()
6275 WhereRightJoin *pRJ = pLevel->pRJ; in sqlite3WhereEnd()
6276 sqlite3VdbeResolveLabel(v, pLevel->addrCont); in sqlite3WhereEnd()
6277 pLevel->addrCont = 0; in sqlite3WhereEnd()
6283 pLoop = pLevel->pWLoop; in sqlite3WhereEnd()
6284 if( pLevel->op!=OP_Noop ){ in sqlite3WhereEnd()
6299 sqlite3VdbeAddOp3(v, OP_Column, pLevel->iIdxCur, j, r1+j); in sqlite3WhereEnd()
6302 op = pLevel->op==OP_Prev ? OP_SeekLT : OP_SeekGT; in sqlite3WhereEnd()
6303 addrSeek = sqlite3VdbeAddOp4Int(v, op, pLevel->iIdxCur, 0, r1, n); in sqlite3WhereEnd()
6306 sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2); in sqlite3WhereEnd()
6310 if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont); in sqlite3WhereEnd()
6311 sqlite3VdbeAddOp3(v, pLevel->op, pLevel->p1, pLevel->p2, pLevel->p3); in sqlite3WhereEnd()
6312 sqlite3VdbeChangeP5(v, pLevel->p5); in sqlite3WhereEnd()
6314 VdbeCoverageIf(v, pLevel->op==OP_Next); in sqlite3WhereEnd()
6315 VdbeCoverageIf(v, pLevel->op==OP_Prev); in sqlite3WhereEnd()
6316 VdbeCoverageIf(v, pLevel->op==OP_VNext); in sqlite3WhereEnd()
6317 if( pLevel->regBignull ){ in sqlite3WhereEnd()
6318 sqlite3VdbeResolveLabel(v, pLevel->addrBignull); in sqlite3WhereEnd()
6319 sqlite3VdbeAddOp2(v, OP_DecrJumpZero, pLevel->regBignull, pLevel->p2-1); in sqlite3WhereEnd()
6325 }else if( pLevel->addrCont ){ in sqlite3WhereEnd()
6326 sqlite3VdbeResolveLabel(v, pLevel->addrCont); in sqlite3WhereEnd()
6328 if( (pLoop->wsFlags & WHERE_IN_ABLE)!=0 && pLevel->u.in.nIn>0 ){ in sqlite3WhereEnd()
6331 sqlite3VdbeResolveLabel(v, pLevel->addrNxt); in sqlite3WhereEnd()
6332 for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){ in sqlite3WhereEnd()
6341 if( pLevel->iLeftJoin ){ in sqlite3WhereEnd()
6355 sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur, in sqlite3WhereEnd()
6374 sqlite3VdbeResolveLabel(v, pLevel->addrBrk); in sqlite3WhereEnd()
6375 if( pLevel->pRJ ){ in sqlite3WhereEnd()
6376 sqlite3VdbeAddOp3(v, OP_Return, pLevel->pRJ->regReturn, 0, 1); in sqlite3WhereEnd()
6379 if( pLevel->addrSkip ){ in sqlite3WhereEnd()
6380 sqlite3VdbeGoto(v, pLevel->addrSkip); in sqlite3WhereEnd()
6382 sqlite3VdbeJumpHere(v, pLevel->addrSkip); in sqlite3WhereEnd()
6383 sqlite3VdbeJumpHere(v, pLevel->addrSkip-2); in sqlite3WhereEnd()
6386 if( pLevel->addrLikeRep ){ in sqlite3WhereEnd()
6387 sqlite3VdbeAddOp2(v, OP_DecrJumpZero, (int)(pLevel->iLikeRepCntr>>1), in sqlite3WhereEnd()
6388 pLevel->addrLikeRep); in sqlite3WhereEnd()
6392 if( pLevel->iLeftJoin ){ in sqlite3WhereEnd()
6394 addr = sqlite3VdbeAddOp1(v, OP_IfPos, pLevel->iLeftJoin); VdbeCoverage(v); in sqlite3WhereEnd()
6397 assert( pLevel->iTabCur==pTabList->a[pLevel->iFrom].iCursor ); in sqlite3WhereEnd()
6398 sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iTabCur); in sqlite3WhereEnd()
6401 || ((ws & WHERE_MULTI_OR) && pLevel->u.pCoveringIdx) in sqlite3WhereEnd()
6404 Index *pIx = pLevel->u.pCoveringIdx; in sqlite3WhereEnd()
6406 sqlite3VdbeAddOp3(v, OP_ReopenIdx, pLevel->iIdxCur, pIx->tnum, iDb); in sqlite3WhereEnd()
6409 sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iIdxCur); in sqlite3WhereEnd()
6411 if( pLevel->op==OP_Return ){ in sqlite3WhereEnd()
6412 sqlite3VdbeAddOp2(v, OP_Gosub, pLevel->p1, pLevel->addrFirst); in sqlite3WhereEnd()
6414 sqlite3VdbeGoto(v, pLevel->addrFirst); in sqlite3WhereEnd()
6419 pWInfo->pTabList->a[pLevel->iFrom].pTab->zName)); in sqlite3WhereEnd()
6423 for(i=0, pLevel=pWInfo->a; i<pWInfo->nLevel; i++, pLevel++){ in sqlite3WhereEnd()
6427 SrcItem *pTabItem = &pTabList->a[pLevel->iFrom]; in sqlite3WhereEnd()
6430 pLoop = pLevel->pWLoop; in sqlite3WhereEnd()
6436 if( pLevel->pRJ ){ in sqlite3WhereEnd()
6437 sqlite3WhereRightJoinLoop(pWInfo, i, pLevel); in sqlite3WhereEnd()
6447 translateColumnToCopy(pParse, pLevel->addrBody, pLevel->iTabCur, in sqlite3WhereEnd()
6466 pIdx = pLevel->u.pCoveringIdx; in sqlite3WhereEnd()
6479 if( p->iIdxCur==pLevel->iIdxCur ){ in sqlite3WhereEnd()
6486 k = pLevel->addrBody + 1; in sqlite3WhereEnd()
6493 assert( pOp->opcode!=OP_Column || pOp->p1!=pLevel->iTabCur ); in sqlite3WhereEnd()
6494 assert( pOp->opcode!=OP_Rowid || pOp->p1!=pLevel->iTabCur ); in sqlite3WhereEnd()
6495 assert( pOp->opcode!=OP_IfNullRow || pOp->p1!=pLevel->iTabCur ); in sqlite3WhereEnd()
6501 if( pOp->p1!=pLevel->iTabCur ){ in sqlite3WhereEnd()
6526 pOp->p1 = pLevel->iIdxCur; in sqlite3WhereEnd()
6545 pOp->p1 = pLevel->iIdxCur; in sqlite3WhereEnd()
6549 pOp->p1 = pLevel->iIdxCur; in sqlite3WhereEnd()