Lines Matching refs:pNew

270   void *pNew = sqlite3WhereMalloc(pWInfo, nByte);  in sqlite3WhereRealloc()  local
271 if( pNew && pOld ){ in sqlite3WhereRealloc()
275 memcpy(pNew, pOld, pOldBlk->sz); in sqlite3WhereRealloc()
277 return pNew; in sqlite3WhereRealloc()
1988 Index *p = pBuilder->pNew->u.btree.pIndex; in whereEqualScanEst()
1989 int nEq = pBuilder->pNew->u.btree.nEq; in whereEqualScanEst()
2052 Index *p = pBuilder->pNew->u.btree.pIndex; in whereInScanEst()
2793 WhereLoop *pNew; /* Template WhereLoop under construction */ in whereLoopAddBtreeIndex() local
2810 pNew = pBuilder->pNew; in whereLoopAddBtreeIndex()
2814 pNew->u.btree.nEq, pNew->nSkip, pNew->rRun)); in whereLoopAddBtreeIndex()
2816 assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 ); in whereLoopAddBtreeIndex()
2817 assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 ); in whereLoopAddBtreeIndex()
2818 if( pNew->wsFlags & WHERE_BTM_LIMIT ){ in whereLoopAddBtreeIndex()
2821 assert( pNew->u.btree.nBtm==0 ); in whereLoopAddBtreeIndex()
2826 assert( pNew->u.btree.nEq<pProbe->nColumn ); in whereLoopAddBtreeIndex()
2827 assert( pNew->u.btree.nEq<pProbe->nKeyCol in whereLoopAddBtreeIndex()
2830 saved_nEq = pNew->u.btree.nEq; in whereLoopAddBtreeIndex()
2831 saved_nBtm = pNew->u.btree.nBtm; in whereLoopAddBtreeIndex()
2832 saved_nTop = pNew->u.btree.nTop; in whereLoopAddBtreeIndex()
2833 saved_nSkip = pNew->nSkip; in whereLoopAddBtreeIndex()
2834 saved_nLTerm = pNew->nLTerm; in whereLoopAddBtreeIndex()
2835 saved_wsFlags = pNew->wsFlags; in whereLoopAddBtreeIndex()
2836 saved_prereq = pNew->prereq; in whereLoopAddBtreeIndex()
2837 saved_nOut = pNew->nOut; in whereLoopAddBtreeIndex()
2840 pNew->rSetup = 0; in whereLoopAddBtreeIndex()
2856 if( pTerm->prereqRight & pNew->maskSelf ) continue; in whereLoopAddBtreeIndex()
2872 pNew->wsFlags = saved_wsFlags; in whereLoopAddBtreeIndex()
2873 pNew->u.btree.nEq = saved_nEq; in whereLoopAddBtreeIndex()
2874 pNew->u.btree.nBtm = saved_nBtm; in whereLoopAddBtreeIndex()
2875 pNew->u.btree.nTop = saved_nTop; in whereLoopAddBtreeIndex()
2876 pNew->nLTerm = saved_nLTerm; in whereLoopAddBtreeIndex()
2877 if( pNew->nLTerm>=pNew->nLSlot in whereLoopAddBtreeIndex()
2878 && whereLoopResize(db, pNew, pNew->nLTerm+1) in whereLoopAddBtreeIndex()
2882 pNew->aLTerm[pNew->nLTerm++] = pTerm; in whereLoopAddBtreeIndex()
2883 pNew->prereq = (saved_prereq | pTerm->prereqRight) & ~pNew->maskSelf; in whereLoopAddBtreeIndex()
2886 || (pNew->wsFlags & WHERE_COLUMN_NULL)!=0 in whereLoopAddBtreeIndex()
2887 || (pNew->wsFlags & WHERE_COLUMN_IN)!=0 in whereLoopAddBtreeIndex()
2888 || (pNew->wsFlags & WHERE_SKIPSCAN)!=0 in whereLoopAddBtreeIndex()
2903 for(i=0; i<pNew->nLTerm-1; i++){ in whereLoopAddBtreeIndex()
2904 if( pNew->aLTerm[i] && pNew->aLTerm[i]->pExpr==pExpr ) nIn = 0; in whereLoopAddBtreeIndex()
2946 pNew->wsFlags |= WHERE_IN_SEEKSCAN; in whereLoopAddBtreeIndex()
2955 pNew->wsFlags |= WHERE_COLUMN_IN; in whereLoopAddBtreeIndex()
2958 pNew->wsFlags |= WHERE_COLUMN_EQ; in whereLoopAddBtreeIndex()
2959 assert( saved_nEq==pNew->u.btree.nEq ); in whereLoopAddBtreeIndex()
2966 pNew->wsFlags |= WHERE_ONEROW; in whereLoopAddBtreeIndex()
2968 pNew->wsFlags |= WHERE_UNQ_WANTED; in whereLoopAddBtreeIndex()
2971 if( scan.iEquiv>1 ) pNew->wsFlags |= WHERE_TRANSCONS; in whereLoopAddBtreeIndex()
2973 pNew->wsFlags |= WHERE_COLUMN_NULL; in whereLoopAddBtreeIndex()
2981 pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_BTM_LIMIT; in whereLoopAddBtreeIndex()
2982 pNew->u.btree.nBtm = nVecLen; in whereLoopAddBtreeIndex()
2992 if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */ in whereLoopAddBtreeIndex()
2993 pNew->aLTerm[pNew->nLTerm++] = pTop; in whereLoopAddBtreeIndex()
2994 pNew->wsFlags |= WHERE_TOP_LIMIT; in whereLoopAddBtreeIndex()
2995 pNew->u.btree.nTop = 1; in whereLoopAddBtreeIndex()
3001 pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_TOP_LIMIT; in whereLoopAddBtreeIndex()
3002 pNew->u.btree.nTop = nVecLen; in whereLoopAddBtreeIndex()
3004 pBtm = (pNew->wsFlags & WHERE_BTM_LIMIT)!=0 ? in whereLoopAddBtreeIndex()
3005 pNew->aLTerm[pNew->nLTerm-2] : 0; in whereLoopAddBtreeIndex()
3014 assert( pNew->nOut==saved_nOut ); in whereLoopAddBtreeIndex()
3015 if( pNew->wsFlags & WHERE_COLUMN_RANGE ){ in whereLoopAddBtreeIndex()
3018 whereRangeScanEst(pParse, pBuilder, pBtm, pTop, pNew); in whereLoopAddBtreeIndex()
3020 int nEq = ++pNew->u.btree.nEq; in whereLoopAddBtreeIndex()
3023 assert( pNew->nOut==saved_nOut ); in whereLoopAddBtreeIndex()
3027 pNew->nOut += pTerm->truthProb; in whereLoopAddBtreeIndex()
3028 pNew->nOut -= nIn; in whereLoopAddBtreeIndex()
3034 && ALWAYS(pNew->u.btree.nEq<=pProbe->nSampleCol) in whereLoopAddBtreeIndex()
3050 pNew->nOut = sqlite3LogEst(nOut); in whereLoopAddBtreeIndex()
3055 && pNew->nOut+10 > pProbe->aiRowLogEst[0] in whereLoopAddBtreeIndex()
3072 if( pNew->nOut>saved_nOut ) pNew->nOut = saved_nOut; in whereLoopAddBtreeIndex()
3073 pNew->nOut -= nIn; in whereLoopAddBtreeIndex()
3079 pNew->nOut += (pProbe->aiRowLogEst[nEq] - pProbe->aiRowLogEst[nEq-1]); in whereLoopAddBtreeIndex()
3084 pNew->nOut += 10; in whereLoopAddBtreeIndex()
3095 rCostIdx = pNew->nOut + 1 + (15*pProbe->szIdxRow)/pSrc->pTab->szTabRow; in whereLoopAddBtreeIndex()
3096 pNew->rRun = sqlite3LogEstAdd(rLogSize, rCostIdx); in whereLoopAddBtreeIndex()
3097 if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){ in whereLoopAddBtreeIndex()
3098 pNew->rRun = sqlite3LogEstAdd(pNew->rRun, pNew->nOut + 16); in whereLoopAddBtreeIndex()
3100 ApplyCostMultiplier(pNew->rRun, pProbe->pTable->costMult); in whereLoopAddBtreeIndex()
3102 nOutUnadjusted = pNew->nOut; in whereLoopAddBtreeIndex()
3103 pNew->rRun += nInMul + nIn; in whereLoopAddBtreeIndex()
3104 pNew->nOut += nInMul + nIn; in whereLoopAddBtreeIndex()
3105 whereLoopOutputAdjust(pBuilder->pWC, pNew, rSize); in whereLoopAddBtreeIndex()
3106 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddBtreeIndex()
3108 if( pNew->wsFlags & WHERE_COLUMN_RANGE ){ in whereLoopAddBtreeIndex()
3109 pNew->nOut = saved_nOut; in whereLoopAddBtreeIndex()
3111 pNew->nOut = nOutUnadjusted; in whereLoopAddBtreeIndex()
3114 if( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 in whereLoopAddBtreeIndex()
3115 && pNew->u.btree.nEq<pProbe->nColumn in whereLoopAddBtreeIndex()
3116 && (pNew->u.btree.nEq<pProbe->nKeyCol || in whereLoopAddBtreeIndex()
3121 pNew->nOut = saved_nOut; in whereLoopAddBtreeIndex()
3126 pNew->prereq = saved_prereq; in whereLoopAddBtreeIndex()
3127 pNew->u.btree.nEq = saved_nEq; in whereLoopAddBtreeIndex()
3128 pNew->u.btree.nBtm = saved_nBtm; in whereLoopAddBtreeIndex()
3129 pNew->u.btree.nTop = saved_nTop; in whereLoopAddBtreeIndex()
3130 pNew->nSkip = saved_nSkip; in whereLoopAddBtreeIndex()
3131 pNew->wsFlags = saved_wsFlags; in whereLoopAddBtreeIndex()
3132 pNew->nOut = saved_nOut; in whereLoopAddBtreeIndex()
3133 pNew->nLTerm = saved_nLTerm; in whereLoopAddBtreeIndex()
3148 && saved_nEq==pNew->nLTerm in whereLoopAddBtreeIndex()
3153 && (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK in whereLoopAddBtreeIndex()
3156 pNew->u.btree.nEq++; in whereLoopAddBtreeIndex()
3157 pNew->nSkip++; in whereLoopAddBtreeIndex()
3158 pNew->aLTerm[pNew->nLTerm++] = 0; in whereLoopAddBtreeIndex()
3159 pNew->wsFlags |= WHERE_SKIPSCAN; in whereLoopAddBtreeIndex()
3161 pNew->nOut -= nIter; in whereLoopAddBtreeIndex()
3166 pNew->nOut = saved_nOut; in whereLoopAddBtreeIndex()
3167 pNew->u.btree.nEq = saved_nEq; in whereLoopAddBtreeIndex()
3168 pNew->nSkip = saved_nSkip; in whereLoopAddBtreeIndex()
3169 pNew->wsFlags = saved_wsFlags; in whereLoopAddBtreeIndex()
3385 WhereLoop *pNew; /* Template WhereLoop object */ in whereLoopAddBtree() local
3393 pNew = pBuilder->pNew; in whereLoopAddBtree()
3396 pSrc = pTabList->a + pNew->iTab; in whereLoopAddBtree()
3452 if( pTerm->prereqRight & pNew->maskSelf ) continue; in whereLoopAddBtree()
3454 pNew->u.btree.nEq = 1; in whereLoopAddBtree()
3455 pNew->nSkip = 0; in whereLoopAddBtree()
3456 pNew->u.btree.pIndex = 0; in whereLoopAddBtree()
3457 pNew->nLTerm = 1; in whereLoopAddBtree()
3458 pNew->aLTerm[0] = pTerm; in whereLoopAddBtree()
3467 pNew->rSetup = rLogSize + rSize; in whereLoopAddBtree()
3469 pNew->rSetup += 28; in whereLoopAddBtree()
3471 pNew->rSetup -= 10; in whereLoopAddBtree()
3473 ApplyCostMultiplier(pNew->rSetup, pTab->costMult); in whereLoopAddBtree()
3474 if( pNew->rSetup<0 ) pNew->rSetup = 0; in whereLoopAddBtree()
3479 pNew->nOut = 43; assert( 43==sqlite3LogEst(20) ); in whereLoopAddBtree()
3480 pNew->rRun = sqlite3LogEstAdd(rLogSize,pNew->nOut); in whereLoopAddBtree()
3481 pNew->wsFlags = WHERE_AUTO_INDEX; in whereLoopAddBtree()
3482 pNew->prereq = mPrereq | pTerm->prereqRight; in whereLoopAddBtree()
3483 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddBtree()
3498 testcase( pNew->iTab!=pSrc->iCursor ); /* See ticket [98d973b8f5] */ in whereLoopAddBtree()
3503 pNew->u.btree.nEq = 0; in whereLoopAddBtree()
3504 pNew->u.btree.nBtm = 0; in whereLoopAddBtree()
3505 pNew->u.btree.nTop = 0; in whereLoopAddBtree()
3506 pNew->nSkip = 0; in whereLoopAddBtree()
3507 pNew->nLTerm = 0; in whereLoopAddBtree()
3508 pNew->iSortIdx = 0; in whereLoopAddBtree()
3509 pNew->rSetup = 0; in whereLoopAddBtree()
3510 pNew->prereq = mPrereq; in whereLoopAddBtree()
3511 pNew->nOut = rSize; in whereLoopAddBtree()
3512 pNew->u.btree.pIndex = pProbe; in whereLoopAddBtree()
3519 pNew->wsFlags = WHERE_IPK; in whereLoopAddBtree()
3522 pNew->iSortIdx = b ? iSortIdx : 0; in whereLoopAddBtree()
3536 pNew->rRun = rSize + 16 - 2*((pTab->tabFlags & TF_HasStat4)!=0); in whereLoopAddBtree()
3538 pNew->rRun = rSize + 16; in whereLoopAddBtree()
3541 pNew->wsFlags |= WHERE_VIEWSCAN; in whereLoopAddBtree()
3543 ApplyCostMultiplier(pNew->rRun, pTab->costMult); in whereLoopAddBtree()
3544 whereLoopOutputAdjust(pWC, pNew, rSize); in whereLoopAddBtree()
3545 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddBtree()
3546 pNew->nOut = rSize; in whereLoopAddBtree()
3551 pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; in whereLoopAddBtree()
3558 pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED; in whereLoopAddBtree()
3574 pNew->iSortIdx = b ? iSortIdx : 0; in whereLoopAddBtree()
3579 pNew->rRun = rSize + 1 + (15*pProbe->szIdxRow)/pTab->szTabRow; in whereLoopAddBtree()
3605 pNew->rRun = sqlite3LogEstAdd(pNew->rRun, nLookup); in whereLoopAddBtree()
3607 ApplyCostMultiplier(pNew->rRun, pTab->costMult); in whereLoopAddBtree()
3608 whereLoopOutputAdjust(pWC, pNew, rSize); in whereLoopAddBtree()
3615 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddBtree()
3617 pNew->nOut = rSize; in whereLoopAddBtree()
3688 WhereLoop *pNew = pBuilder->pNew; in whereLoopAddVirtualOne() local
3690 SrcItem *pSrc = &pBuilder->pWInfo->pTabList->a[pNew->iTab]; in whereLoopAddVirtualOne()
3695 pNew->prereq = mPrereq; in whereLoopAddVirtualOne()
3738 assert( pNew->nLSlot>=nConstraint ); in whereLoopAddVirtualOne()
3739 memset(pNew->aLTerm, 0, sizeof(pNew->aLTerm[0])*nConstraint ); in whereLoopAddVirtualOne()
3740 memset(&pNew->u.vtab, 0, sizeof(pNew->u.vtab)); in whereLoopAddVirtualOne()
3750 || pNew->aLTerm[iTerm]!=0 in whereLoopAddVirtualOne()
3761 pNew->prereq |= pTerm->prereqRight; in whereLoopAddVirtualOne()
3762 assert( iTerm<pNew->nLSlot ); in whereLoopAddVirtualOne()
3763 pNew->aLTerm[iTerm] = pTerm; in whereLoopAddVirtualOne()
3770 pNew->u.vtab.omitMask |= 1<<iTerm; in whereLoopAddVirtualOne()
3775 pNew->u.vtab.bOmitOffset = 1; in whereLoopAddVirtualOne()
3779 pNew->u.vtab.mHandleIn |= MASKBIT32(iTerm); in whereLoopAddVirtualOne()
3809 pNew->nLTerm = mxTerm+1; in whereLoopAddVirtualOne()
3811 if( pNew->aLTerm[i]==0 ){ in whereLoopAddVirtualOne()
3819 assert( pNew->nLTerm<=pNew->nLSlot ); in whereLoopAddVirtualOne()
3820 pNew->u.vtab.idxNum = pIdxInfo->idxNum; in whereLoopAddVirtualOne()
3821 pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr; in whereLoopAddVirtualOne()
3823 pNew->u.vtab.idxStr = pIdxInfo->idxStr; in whereLoopAddVirtualOne()
3824 pNew->u.vtab.isOrdered = (i8)(pIdxInfo->orderByConsumed ? in whereLoopAddVirtualOne()
3826 pNew->rSetup = 0; in whereLoopAddVirtualOne()
3827 pNew->rRun = sqlite3LogEstFromDouble(pIdxInfo->estimatedCost); in whereLoopAddVirtualOne()
3828 pNew->nOut = sqlite3LogEst(pIdxInfo->estimatedRows); in whereLoopAddVirtualOne()
3833 pNew->wsFlags |= WHERE_ONEROW; in whereLoopAddVirtualOne()
3835 pNew->wsFlags &= ~WHERE_ONEROW; in whereLoopAddVirtualOne()
3837 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddVirtualOne()
3838 if( pNew->u.vtab.needFree ){ in whereLoopAddVirtualOne()
3839 sqlite3_free(pNew->u.vtab.idxStr); in whereLoopAddVirtualOne()
3840 pNew->u.vtab.needFree = 0; in whereLoopAddVirtualOne()
3844 (sqlite3_uint64)(pNew->prereq & ~mPrereq))); in whereLoopAddVirtualOne()
4008 WhereLoop *pNew; in whereLoopAddVirtual() local
4017 pNew = pBuilder->pNew; in whereLoopAddVirtual()
4018 pSrc = &pWInfo->pTabList->a[pNew->iTab]; in whereLoopAddVirtual()
4022 pNew->rSetup = 0; in whereLoopAddVirtual()
4023 pNew->wsFlags = WHERE_VIRTUALTABLE; in whereLoopAddVirtual()
4024 pNew->nLTerm = 0; in whereLoopAddVirtual()
4025 pNew->u.vtab.needFree = 0; in whereLoopAddVirtual()
4027 if( whereLoopResize(pParse->db, pNew, nConstraint) ){ in whereLoopAddVirtual()
4050 if( rc==SQLITE_OK && ((mBest = (pNew->prereq & ~mPrereq))!=0 || bIn) ){ in whereLoopAddVirtual()
4063 mBestNoIn = pNew->prereq & ~mPrereq; in whereLoopAddVirtual()
4089 if( pNew->prereq==mPrereq ){ in whereLoopAddVirtual()
4133 WhereLoop *pNew; in whereLoopAddOr() local
4144 pNew = pBuilder->pNew; in whereLoopAddOr()
4146 pItem = pWInfo->pTabList->a + pNew->iTab; in whereLoopAddOr()
4154 && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0 in whereLoopAddOr()
4222 pNew->nLTerm = 1; in whereLoopAddOr()
4223 pNew->aLTerm[0] = pTerm; in whereLoopAddOr()
4224 pNew->wsFlags = WHERE_MULTI_OR; in whereLoopAddOr()
4225 pNew->rSetup = 0; in whereLoopAddOr()
4226 pNew->iSortIdx = 0; in whereLoopAddOr()
4227 memset(&pNew->u, 0, sizeof(pNew->u)); in whereLoopAddOr()
4241 pNew->rRun = sSum.a[i].rRun + 1; in whereLoopAddOr()
4242 pNew->nOut = sSum.a[i].nOut; in whereLoopAddOr()
4243 pNew->prereq = sSum.a[i].prereq; in whereLoopAddOr()
4244 rc = whereLoopInsert(pBuilder, pNew); in whereLoopAddOr()
4267 WhereLoop *pNew; in whereLoopAddAll() local
4271 pNew = pBuilder->pNew; in whereLoopAddAll()
4274 assert( pNew->nLTerm==0 ); in whereLoopAddAll()
4275 assert( pNew->wsFlags==0 ); in whereLoopAddAll()
4276 assert( pNew->nLSlot>=ArraySize(pNew->aLTermSpace) ); in whereLoopAddAll()
4277 assert( pNew->aLTerm!=0 ); in whereLoopAddAll()
4282 pNew->iTab = iTab; in whereLoopAddAll()
4284 pNew->maskSelf = sqlite3WhereGetMask(&pWInfo->sMaskSet, pItem->iCursor); in whereLoopAddAll()
4321 mPrior |= pNew->maskSelf; in whereLoopAddAll()
4333 whereLoopClear(db, pNew); in whereLoopAddAll()
5203 pLoop = pBuilder->pNew; in whereShortCut()
5718 sWLB.pNew = (WhereLoop*)(((char*)pWInfo)+nByteWInfo); in sqlite3WhereBegin()
5719 assert( EIGHT_BYTE_ALIGNMENT(sWLB.pNew) ); in sqlite3WhereBegin()
5720 whereLoopInit(sWLB.pNew); in sqlite3WhereBegin()
5722 sWLB.pNew->cId = '*'; in sqlite3WhereBegin()