Lines Matching refs:pScan

310 static WhereTerm *whereScanNext(WhereScan *pScan){  in whereScanNext()  argument
316 int k = pScan->k; /* Where to start scanning */ in whereScanNext()
318 assert( pScan->iEquiv<=pScan->nEquiv ); in whereScanNext()
319 pWC = pScan->pWC; in whereScanNext()
321 iColumn = pScan->aiColumn[pScan->iEquiv-1]; in whereScanNext()
322 iCur = pScan->aiCur[pScan->iEquiv-1]; in whereScanNext()
332 pScan->pIdxExpr,iCur)==0) in whereScanNext()
333 && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_OuterON)) in whereScanNext()
336 && pScan->nEquiv<ArraySize(pScan->aiCur) in whereScanNext()
340 for(j=0; j<pScan->nEquiv; j++){ in whereScanNext()
341 if( pScan->aiCur[j]==pX->iTable in whereScanNext()
342 && pScan->aiColumn[j]==pX->iColumn ){ in whereScanNext()
346 if( j==pScan->nEquiv ){ in whereScanNext()
347 pScan->aiCur[j] = pX->iTable; in whereScanNext()
348 pScan->aiColumn[j] = pX->iColumn; in whereScanNext()
349 pScan->nEquiv++; in whereScanNext()
352 if( (pTerm->eOperator & pScan->opMask)!=0 ){ in whereScanNext()
354 if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){ in whereScanNext()
358 if( !sqlite3IndexAffinityOk(pX, pScan->idxaff) ){ in whereScanNext()
364 if( sqlite3StrICmp(pColl->zName, pScan->zCollName) ){ in whereScanNext()
371 && pX->iTable==pScan->aiCur[0] in whereScanNext()
372 && pX->iColumn==pScan->aiColumn[0] in whereScanNext()
377 pScan->pWC = pWC; in whereScanNext()
378 pScan->k = k+1; in whereScanNext()
383 pTerm, pScan->nEquiv); in whereScanNext()
384 for(ii=0; ii<pScan->nEquiv; ii++){ in whereScanNext()
386 pScan->aiCur[ii], pScan->aiColumn[ii]); in whereScanNext()
398 if( pScan->iEquiv>=pScan->nEquiv ) break; in whereScanNext()
399 pWC = pScan->pOrigWC; in whereScanNext()
401 pScan->iEquiv++; in whereScanNext()
412 static SQLITE_NOINLINE WhereTerm *whereScanInitIndexExpr(WhereScan *pScan){ in whereScanInitIndexExpr() argument
413 pScan->idxaff = sqlite3ExprAffinity(pScan->pIdxExpr); in whereScanInitIndexExpr()
414 return whereScanNext(pScan); in whereScanInitIndexExpr()
437 WhereScan *pScan, /* The WhereScan object being initialized */ in whereScanInit() argument
444 pScan->pOrigWC = pWC; in whereScanInit()
445 pScan->pWC = pWC; in whereScanInit()
446 pScan->pIdxExpr = 0; in whereScanInit()
447 pScan->idxaff = 0; in whereScanInit()
448 pScan->zCollName = 0; in whereScanInit()
449 pScan->opMask = opMask; in whereScanInit()
450 pScan->k = 0; in whereScanInit()
451 pScan->aiCur[0] = iCur; in whereScanInit()
452 pScan->nEquiv = 1; in whereScanInit()
453 pScan->iEquiv = 1; in whereScanInit()
460 pScan->idxaff = pIdx->pTable->aCol[iColumn].affinity; in whereScanInit()
461 pScan->zCollName = pIdx->azColl[j]; in whereScanInit()
463 pScan->pIdxExpr = pIdx->aColExpr->a[j].pExpr; in whereScanInit()
464 pScan->zCollName = pIdx->azColl[j]; in whereScanInit()
465 pScan->aiColumn[0] = XN_EXPR; in whereScanInit()
466 return whereScanInitIndexExpr(pScan); in whereScanInit()
471 pScan->aiColumn[0] = iColumn; in whereScanInit()
472 return whereScanNext(pScan); in whereScanInit()