Lines Matching refs:pWC

143517 **        WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm
143561 WhereClause *pWC; /* The clause this term is part of */
143567 int iParent; /* Disable pWC->a[iParent] when this term disabled */
143610 WhereClause *pWC; /* WhereClause currently being scanned */
143617 int k; /* Resume scanning at this->pWC->a[this->k] */
143709 WhereClause *pWC; /* WHERE clause terms */
143810 SQLITE_PRIVATE void sqlite3WhereClausePrint(WhereClause *pWC);
143812 SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC);
143815 WhereClause *pWC, /* The WHERE clause to be searched */
144216 pTerm = &pTerm->pWC->a[pTerm->iParent];
144712 || pTerm->pWC->pWInfo->pParse->db->mallocFailed );
144843 WhereClause *pWC;
144858 pWC = &pWInfo->sWC;
144859 for(i=0; i<pWC->nTerm; i++){
144860 pTerm = &pWC->a[i];
145169 WhereClause *pWC
145174 whereApplyPartialIndexConstraints(pTruth->pLeft, iTabCur, pWC);
145177 for(i=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){
145204 WhereClause *pWC; /* Decomposition of the entire WHERE clause */
145216 pWC = &pWInfo->sWC;
145228 sqlite3WhereLoopPrint(pLoop, pWC);
145236 sqlite3WhereClausePrint(pWC);
145893 whereApplyPartialIndexConstraints(pIdx->pPartIdxWhere, iCur, pWC);
146051 if( pWC->nTerm>1 ){
146053 for(iTerm=0; iTerm<pWC->nTerm; iTerm++){
146054 Expr *pExpr = pWC->a[iTerm].pExpr;
146055 if( &pWC->a[iTerm] == pTerm ) continue;
146056 testcase( pWC->a[iTerm].wtFlags & TERM_VIRTUAL );
146057 testcase( pWC->a[iTerm].wtFlags & TERM_CODED );
146058 if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED))!=0 ) continue;
146059 if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue;
146060 testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
146263 for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
146310 pWC->nTerm-j, pTerm, iLoop));
146314 sqlite3WhereTermPrint(pTerm, pWC->nTerm-j);
146332 for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
146344 sqlite3WhereTermPrint(pTerm, pWC->nTerm-j);
146349 pAlt = sqlite3WhereFindTerm(pWC, iCur, pTerm->u.x.leftColumn, notReady,
146375 for(pTerm=pWC->a, j=0; j<pWC->nTerm; j++, pTerm++){
146393 sqlite3WhereClausePrint(pWC);
146446 ** Add a single new WhereTerm entry to the WhereClause object pWC.
146448 ** The index in pWC->a[] of the new WhereTerm is returned on success.
146453 ** This routine will increase the size of the pWC->a[] array as necessary.
146456 ** for freeing the expression p is assumed by the WhereClause object pWC.
146462 ** the pWC->a[] array.
146464 static int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags){
146468 if( pWC->nTerm>=pWC->nSlot ){
146469 WhereTerm *pOld = pWC->a;
146470 sqlite3 *db = pWC->pWInfo->pParse->db;
146471 pWC->a = sqlite3DbMallocRawNN(db, sizeof(pWC->a[0])*pWC->nSlot*2 );
146472 if( pWC->a==0 ){
146476 pWC->a = pOld;
146479 memcpy(pWC->a, pOld, sizeof(pWC->a[0])*pWC->nTerm);
146480 if( pOld!=pWC->aStatic ){
146483 pWC->nSlot = sqlite3DbMallocSize(db, pWC->a)/sizeof(pWC->a[0]);
146485 pTerm = &pWC->a[idx = pWC->nTerm++];
146493 pTerm->pWC = pWC;
146865 static void markTermAsChild(WhereClause *pWC, int iChild, int iParent){
146866 pWC->a[iChild].iParent = iParent;
146867 pWC->a[iChild].truthProb = pWC->a[iParent].truthProb;
146868 pWC->a[iParent].nChild++;
146887 ** Subterms pOne and pTwo are contained within WHERE clause pWC. The
146893 ** add a new virtual AND term to pWC that is the combination of the
146908 WhereClause *pWC, /* The complete WHERE clause */
146916 int idxNew; /* Index in pWC of the next virtual term */
146936 db = pWC->pWInfo->pParse->db;
146941 idxNew = whereClauseInsert(pWC, pNew, TERM_VIRTUAL|TERM_DYNAMIC);
146942 exprAnalyze(pSrc, pWC, idxNew);
147035 WhereClause *pWC, /* the complete WHERE clause */
147038 WhereInfo *pWInfo = pWC->pWInfo; /* WHERE clause processing context */
147041 WhereTerm *pTerm = &pWC->a[idxTerm]; /* The term to be analyzed */
147089 sqlite3WhereClauseInit(pAndWC, pWC->pWInfo);
147092 pAndWC->pOuter = pWC;
147131 pWC->hasOr = 1;
147145 whereCombineDisjuncts(pSrc, pWC, pOne, pTwo);
147276 idxNew = whereClauseInsert(pWC, pNew, TERM_VIRTUAL|TERM_DYNAMIC);
147278 exprAnalyze(pSrc, pWC, idxNew);
147279 /* pTerm = &pWC->a[idxTerm]; // would be needed if pTerm where used again */
147280 markTermAsChild(pWC, idxNew, idxTerm);
147600 WhereClause *pWC, /* the WHERE clause */
147603 Parse *pParse = pWC->pWInfo->pParse;
147604 WhereTerm *pTerm = &pWC->a[idxTerm];
147680 idxNew = whereClauseInsert(pWC, pDup, TERM_VIRTUAL|TERM_DYNAMIC);
147681 exprAnalyze(pSrc, pWC, idxNew);
147682 markTermAsChild(pWC, idxNew, idxTerm);
147683 pWC->a[idxTerm].wtFlags |= TERM_COPIED;
147706 WhereClause *pWC, /* the WHERE clause */
147709 WhereInfo *pWInfo = pWC->pWInfo; /* WHERE clause processing context */
147728 pTerm = &pWC->a[idxTerm];
147796 idxNew = whereClauseInsert(pWC, pDup, TERM_VIRTUAL|TERM_DYNAMIC);
147798 pNew = &pWC->a[idxNew];
147799 markTermAsChild(pWC, idxNew, idxTerm);
147801 pTerm = &pWC->a[idxTerm];
147844 else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){
147857 idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
147859 exprAnalyze(pSrc, pWC, idxNew);
147860 pTerm = &pWC->a[idxTerm];
147861 markTermAsChild(pWC, idxNew, idxTerm);
147871 assert( pWC->op==TK_AND );
147872 exprAnalyzeOrTerm(pSrc, pWC, idxTerm);
147873 pTerm = &pWC->a[idxTerm];
147882 exprAnalyzeExists(pSrc, pWC, idxTerm);
147906 idxNew = whereClauseInsert(pWC, pNewExpr,
147909 pNewTerm = &pWC->a[idxNew];
147914 markTermAsChild(pWC, idxNew, idxTerm);
147915 pTerm = &pWC->a[idxTerm];
147938 && pWC->op==TK_AND
147989 idxNew1 = whereClauseInsert(pWC, pNewExpr1, wtFlags);
147991 exprAnalyze(pSrc, pWC, idxNew1);
147997 idxNew2 = whereClauseInsert(pWC, pNewExpr2, wtFlags);
147999 exprAnalyze(pSrc, pWC, idxNew2);
148000 pTerm = &pWC->a[idxTerm];
148002 markTermAsChild(pWC, idxNew1, idxTerm);
148003 markTermAsChild(pWC, idxNew2, idxTerm);
148020 && pWC->op==TK_AND
148031 idxNew = whereClauseInsert(pWC, pNew, TERM_DYNAMIC);
148032 exprAnalyze(pSrc, pWC, idxNew);
148034 pTerm = &pWC->a[idxTerm];
148055 && pWC->op==TK_AND
148060 idxNew = whereClauseInsert(pWC, pExpr, TERM_VIRTUAL);
148061 pWC->a[idxNew].u.x.iField = i+1;
148062 exprAnalyze(pSrc, pWC, idxNew);
148063 markTermAsChild(pWC, idxNew, idxTerm);
148077 else if( pWC->op==TK_AND ){
148095 idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
148097 pNewTerm = &pWC->a[idxNew];
148103 markTermAsChild(pWC, idxNew, idxTerm);
148104 pTerm = &pWC->a[idxTerm];
148116 testcase( pTerm!=&pWC->a[idxTerm] );
148117 pTerm = &pWC->a[idxTerm];
148143 SQLITE_PRIVATE void sqlite3WhereSplit(WhereClause *pWC, Expr *pExpr, u8 op){
148145 pWC->op = op;
148149 whereClauseInsert(pWC, pExpr, 0);
148151 sqlite3WhereSplit(pWC, pE2->pLeft, op);
148152 sqlite3WhereSplit(pWC, pE2->pRight, op);
148160 WhereClause *pWC, /* The WhereClause to be initialized */
148163 pWC->pWInfo = pWInfo;
148164 pWC->hasOr = 0;
148165 pWC->pOuter = 0;
148166 pWC->nTerm = 0;
148167 pWC->nSlot = ArraySize(pWC->aStatic);
148168 pWC->a = pWC->aStatic;
148176 SQLITE_PRIVATE void sqlite3WhereClauseClear(WhereClause *pWC){
148179 sqlite3 *db = pWC->pWInfo->pParse->db;
148180 for(i=pWC->nTerm-1, a=pWC->a; i>=0; i--, a++){
148190 if( pWC->a!=pWC->aStatic ){
148191 sqlite3DbFree(db, pWC->a);
148254 WhereClause *pWC /* the WHERE clause to be analyzed */
148257 for(i=pWC->nTerm-1; i>=0; i--){
148258 exprAnalyze(pTabList, pWC, i);
148272 WhereClause *pWC /* Xfer function arguments to here */
148303 whereClauseInsert(pWC, pTerm, TERM_DYNAMIC);
148341 WhereClause *pWC; /* The Where clause being analyzed */
148585 WhereClause *pWC; /* Shorthand for pScan->pWC */
148590 pWC = pScan->pWC;
148594 assert( pWC!=0 );
148596 for(pTerm=pWC->a+k; k<pWC->nTerm; k++, pTerm++){
148625 Parse *pParse = pWC->pWInfo->pParse;
148645 pScan->pWC = pWC;
148651 pWC = pWC->pOuter;
148653 }while( pWC!=0 );
148655 pWC = pScan->pOrigWC;
148677 ** The scanner will be searching the WHERE clause pWC. It will look
148694 WhereClause *pWC, /* The WHERE clause to be scanned */
148700 pScan->pOrigWC = pWC;
148701 pScan->pWC = pWC;
148757 WhereClause *pWC, /* The WHERE clause to be searched */
148768 p = whereScanInit(&scan, pWC, iCur, iColumn, op, pIdx);
148846 WhereClause *pWC, /* The WHERE clause */
148887 if( 0==sqlite3WhereFindTerm(pWC, iBase, i, ~(Bitmask)0, WO_EQ, pIdx) ){
149038 WhereClause *pWC, /* The WHERE clause */
149045 WhereTerm *pWCEnd; /* End of pWC->a[] */
149077 pWCEnd = &pWC->a[pWC->nTerm];
149080 for(pTerm=pWC->a; pTerm<pWCEnd; pTerm++){
149144 for(pTerm=pWC->a; pTerm<pWCEnd; pTerm++){
149191 pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom];
149245 WhereClause *pWC, /* The WHERE clause being analyzed */
149264 for(i=nTerm=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){
149312 pHidden->pWC = pWC;
149314 for(i=j=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){
150130 SQLITE_PRIVATE void sqlite3WhereClausePrint(WhereClause *pWC){
150132 for(i=0; i<pWC->nTerm; i++){
150133 sqlite3WhereTermPrint(&pWC->a[i], i);
150142 SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC){
150143 WhereInfo *pWInfo = pWC->pWInfo;
150506 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC);
150523 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC);
150539 sqlite3WhereLoopPrint(p, pBuilder->pWC);
150544 sqlite3WhereLoopPrint(pTemplate, pBuilder->pWC);
150568 sqlite3WhereLoopPrint(pToDel, pBuilder->pWC);
150614 WhereClause *pWC, /* The WHERE clause */
150624 for(i=pWC->nTerm, pTerm=pWC->a; i>0; i--, pTerm++){
150633 if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break;
150806 pTerm = whereScanInit(&scan, pBuilder->pWC, pSrc->iCursor, saved_nEq,
150945 assert( (pTop-(pTerm->pWC->a))<pTerm->pWC->nTerm );
151062 whereLoopOutputAdjust(pBuilder->pWC, pNew, rSize);
151177 WhereClause *pWC, /* The WHERE clause of the query */
151182 Parse *pParse = pWC->pWInfo->pParse;
151184 if( !whereUsablePartialIndex(iTab,isLeft,pWC,pWhere->pLeft) ) return 0;
151188 for(i=0, pTerm=pWC->a; i<pWC->nTerm; i++, pTerm++){
151254 WhereClause *pWC; /* The parsed WHERE clause */
151262 pWC = pBuilder->pWC;
151311 WhereTerm *pWCEnd = pWC->a + pWC->nTerm;
151312 for(pTerm=pWC->a; rc==SQLITE_OK && pTerm<pWCEnd; pTerm++){
151357 && !whereUsablePartialIndex(pSrc->iCursor, isLeft, pWC,
151403 whereLoopOutputAdjust(pWC, pNew, rSize);
151464 whereLoopOutputAdjust(pWC, pNew, rSize);
151520 WhereClause *pWC = pBuilder->pWC;
151539 WhereTerm *pTerm = &pWC->a[pIdxCons->iTermOffset];
151585 || j>=pWC->nTerm
151595 testcase( j==pWC->nTerm-1 );
151596 pTerm = &pWC->a[j];
151677 Expr *pX = pHidden->pWC->a[iTerm].pExpr;
151719 WhereClause *pWC; /* The WHERE clause */
151731 pWC = pBuilder->pWC;
151735 p = allocateIndexInfo(pParse, pWC, mUnusable, pSrc, pBuilder->pOrderBy,
151786 pWC->a[p->aConstraint[i].iTermOffset].prereqRight & ~mPrereq
151840 WhereClause *pWC;
151850 pWC = pBuilder->pWC;
151851 pWCEnd = pWC->a + pWC->nTerm;
151857 for(pTerm=pWC->a; pTerm<pWCEnd && rc==SQLITE_OK; pTerm++){
151874 sSubBuild.pWC = &pOrTerm->u.pAndInfo->wc;
151876 tempWC.pWInfo = pWC->pWInfo;
151877 tempWC.pOuter = pWC;
151881 sSubBuild.pWC = &tempWC;
151888 (int)(pOrTerm-pOrWC->a), pTerm, sSubBuild.pWC->nTerm));
151890 sqlite3WhereClausePrint(sSubBuild.pWC);
152000 if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){
152844 WhereClause *pWC;
152860 pWC = &pWInfo->sWC;
152864 pTerm = sqlite3WhereFindTerm(pWC, iCur, -1, 0, WO_EQ|WO_IS, 0);
152883 pTerm = sqlite3WhereFindTerm(pWC, iCur, j, 0, opMask, pIdx);
152951 static void showAllWhereLoops(WhereInfo *pWInfo, WhereClause *pWC){
152959 sqlite3WhereLoopPrint(p, pWC);
153151 sWLB.pWC = &pWInfo->sWC;
153221 for(ii=0; ii<sWLB.pWC->nTerm; ii++){
153222 WhereTerm *pT = &sWLB.pWC->a[ii];
153262 sqlite3WhereClausePrint(sWLB.pWC);
153277 WHERETRACE_ALL_LOOPS(pWInfo, sWLB.pWC);
153290 WHERETRACE_ALL_LOOPS(pWInfo, sWLB.pWC);
153327 sqlite3WhereLoopPrint(pWInfo->a[ii].pWLoop, sWLB.pWC);
153383 pEnd = sWLB.pWC->a + sWLB.pWC->nTerm;
153384 for(pTerm=sWLB.pWC->a; pTerm<pEnd; pTerm++){
153396 for(pTerm=sWLB.pWC->a; pTerm<pEnd; pTerm++){
153412 sqlite3WhereClausePrint(sWLB.pWC);