Lines Matching refs:pPhrase

114359   Fts3Phrase *pPhrase;       /* Valid if eType==FTSQUERY_PHRASE */
117533 int nToken = pExpr->pPhrase->nToken;
117536 Fts3PhraseToken *pToken = &pExpr->pPhrase->aToken[i];
117545 assert( pExpr->pPhrase->iDoclistToken==0 );
117546 pExpr->pPhrase->iDoclistToken = -1;
117659 static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){
117666 assert( pPhrase->doclist.bFreeList==0 );
117668 for(iToken=0; rc==SQLITE_OK && iToken<pPhrase->nToken; iToken++){
117669 Fts3PhraseToken *pToken = &pPhrase->aToken[iToken];
117680 pPhrase->doclist.pList = 0;
117681 pPhrase->doclist.nList = 0;
117700 pPhrase->doclist.pList = 0;
117701 pPhrase->doclist.nList = 0;
117710 int nMaxUndeferred = pPhrase->iDoclistToken;
117712 pPhrase->doclist.pList = aPoslist;
117713 pPhrase->doclist.nList = nPoslist;
117714 pPhrase->doclist.iDocid = pCsr->iPrevId;
117715 pPhrase->doclist.bFreeList = 1;
117724 p2 = pPhrase->doclist.pList;
117727 p1 = pPhrase->doclist.pList;
117738 pPhrase->doclist.pList = aOut;
117740 pPhrase->doclist.bFreeList = 1;
117741 pPhrase->doclist.nList = (aOut - pPhrase->doclist.pList);
117744 pPhrase->doclist.pList = 0;
117745 pPhrase->doclist.nList = 0;
117954 int nToken = pExpr->pPhrase->nToken;
117956 if( pExpr->pPhrase->aToken[i].pDeferred==0 ) break;
117959 *pRc = fts3EvalPhraseStart(pCsr, bOptOk, pExpr->pPhrase);
117982 Fts3Phrase *pPhrase; /* The phrase the token belongs to */
118007 Fts3Phrase *pPhrase = pExpr->pPhrase;
118009 for(i=0; *pRc==SQLITE_OK && i<pPhrase->nToken; i++){
118011 pTC->pPhrase = pPhrase;
118014 pTC->pToken = &pPhrase->aToken[i];
118015 pTC->iCol = pPhrase->iColumn;
118186 if( ii==0 || pTC->pPhrase->nToken>1 ){
118197 fts3EvalPhraseMergeToken(pTab, pTC->pPhrase, pTC->iToken,pList,nList);
118199 pTC->pPhrase->doclist.aAll, pTC->pPhrase->doclist.nAll
118269 ** Invalidate the current position list for phrase pPhrase.
118271 static void fts3EvalInvalidatePoslist(Fts3Phrase *pPhrase){
118272 if( pPhrase->doclist.bFreeList ){
118273 sqlite3_free(pPhrase->doclist.pList);
118275 pPhrase->doclist.pList = 0;
118276 pPhrase->doclist.nList = 0;
118277 pPhrase->doclist.bFreeList = 0;
118290 ** phrase on the other side of the NEAR operator to pPhrase. For example,
118291 ** if pPhrase refers to the "def ghi" phrase, then *paPoslist points to
118294 ** All positions in the pPhrase position list that are not sufficiently
118299 ** associated with pPhrase. And *pnToken is set to the number of tokens in
118300 ** pPhrase.
118307 Fts3Phrase *pPhrase /* The phrase object to trim the doclist of */
118309 int nParam1 = nNear + pPhrase->nToken;
118316 assert( pPhrase->doclist.pList );
118318 p2 = pOut = pPhrase->doclist.pList;
118323 nNew = (pOut - pPhrase->doclist.pList) - 1;
118324 assert( pPhrase->doclist.pList[nNew]=='\0' );
118325 assert( nNew<=pPhrase->doclist.nList && nNew>0 );
118326 memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
118327 pPhrase->doclist.nList = nNew;
118328 *paPoslist = pPhrase->doclist.pList;
118329 *pnToken = pPhrase->nToken;
118352 ** FTs3Expr.pPhrase->doclist.nList (length of pList in bytes)
118353 ** FTs3Expr.pPhrase->doclist.pList (pointer to position list)
118476 Fts3Phrase *pPhrase = pExpr->pPhrase;
118477 fts3EvalInvalidatePoslist(pPhrase);
118478 *pRc = fts3EvalPhraseNext(pCsr, pPhrase, &pExpr->bEof);
118479 pExpr->iDocid = pPhrase->doclist.iDocid;
118492 ** (Fts3Expr->pPhrase.doclist.pList/nList) for each phrase in the expression.
118535 nTmp += p->pRight->pPhrase->doclist.nList;
118537 nTmp += p->pPhrase->doclist.nList;
118543 char *aPoslist = p->pPhrase->doclist.pList;
118544 int nToken = p->pPhrase->nToken;
118547 Fts3Phrase *pPhrase = p->pRight->pPhrase;
118549 res = fts3EvalNearTrim(nNear, aTmp, &aPoslist, &nToken, pPhrase);
118552 aPoslist = pExpr->pRight->pPhrase->doclist.pList;
118553 nToken = pExpr->pRight->pPhrase->nToken;
118556 Fts3Phrase *pPhrase = (
118557 p->eType==FTSQUERY_NEAR ? p->pRight->pPhrase : p->pPhrase
118559 res = fts3EvalNearTrim(nNear, aTmp, &aPoslist, &nToken, pPhrase);
118616 for(p=pExpr; p->pPhrase==0; p=p->pLeft){
118618 fts3EvalInvalidatePoslist(p->pRight->pPhrase);
118622 fts3EvalInvalidatePoslist(p->pPhrase);
118646 Fts3Phrase *pPhrase = pExpr->pPhrase;
118647 assert( pExpr->bDeferred || pPhrase->doclist.bFreeList==0 );
118649 fts3EvalInvalidatePoslist(pPhrase);
118651 *pRc = fts3EvalDeferredPhrase(pCsr, pPhrase);
118652 bHit = (pPhrase->doclist.pList!=0);
118755 Fts3Phrase *pPhrase = pExpr->pPhrase;
118757 if( pPhrase ){
118758 fts3EvalInvalidatePoslist(pPhrase);
118759 if( pPhrase->bIncr ){
118760 assert( pPhrase->nToken==1 );
118761 assert( pPhrase->aToken[0].pSegcsr );
118762 sqlite3Fts3MsrIncrRestart(pPhrase->aToken[0].pSegcsr);
118763 *pRc = fts3EvalPhraseStart(pCsr, 0, pPhrase);
118766 pPhrase->doclist.pNextDocid = 0;
118767 pPhrase->doclist.iDocid = 0;
118784 ** found in Fts3Expr.pPhrase->doclist.pList for each of the phrase
118789 Fts3Phrase *pPhrase = pExpr->pPhrase;
118790 if( pPhrase && pPhrase->doclist.pList ){
118792 char *p = pPhrase->doclist.pList;
118995 Fts3Phrase *pPhrase = pExpr->pPhrase;
118997 char *pIter = pPhrase->doclist.pList;
119004 || (pPhrase->iColumn<pTab->nColumn && pPhrase->iColumn!=iCol)
119009 assert( pPhrase->doclist.nList>0 );
119030 ** * the contents of pPhrase->doclist, and
119033 SQLITE_PRIVATE void sqlite3Fts3EvalPhraseCleanup(Fts3Phrase *pPhrase){
119034 if( pPhrase ){
119036 sqlite3_free(pPhrase->doclist.aAll);
119037 fts3EvalInvalidatePoslist(pPhrase);
119038 memset(&pPhrase->doclist, 0, sizeof(Fts3Doclist));
119039 for(i=0; i<pPhrase->nToken; i++){
119040 fts3SegReaderCursorFree(pPhrase->aToken[i].pSegcsr);
119041 pPhrase->aToken[i].pSegcsr = 0;
119710 pRet->pPhrase = (Fts3Phrase *)&pRet[1];
119711 pRet->pPhrase->nToken = 1;
119712 pRet->pPhrase->iColumn = iCol;
119713 pRet->pPhrase->aToken[0].n = nToken;
119714 pRet->pPhrase->aToken[0].z = (char *)&pRet->pPhrase[1];
119715 memcpy(pRet->pPhrase->aToken[0].z, zToken, nToken);
119718 pRet->pPhrase->aToken[0].isPrefix = 1;
119838 p->pPhrase = (Fts3Phrase *)&p[1];
119839 p->pPhrase->iColumn = pParse->iDefaultCol;
119840 p->pPhrase->nToken = nToken;
119842 zBuf = (char *)&p->pPhrase->aToken[nToken];
119846 for(jj=0; jj<p->pPhrase->nToken; jj++){
119847 p->pPhrase->aToken[jj].z = zBuf;
119848 zBuf += p->pPhrase->aToken[jj].n;
120306 assert( p->eType==FTSQUERY_PHRASE || p->pPhrase==0 );
120309 sqlite3Fts3EvalPhraseCleanup(p->pPhrase);
120365 Fts3Phrase *pPhrase = pExpr->pPhrase;
120368 "%zPHRASE %d 0", zBuf, pPhrase->iColumn);
120369 for(i=0; zBuf && i<pPhrase->nToken; i++){
120371 pPhrase->aToken[i].n, pPhrase->aToken[i].z,
120372 (pPhrase->aToken[i].isPrefix?"+":"")
125715 Fts3Phrase *pPhrase = pExpr->pPhrase;
125721 p->nToken += pPhrase->nToken;
125803 SnippetPhrase *pPhrase = &pIter->aPhrase[i];
125804 fts3SnippetAdvance(&pPhrase->pHead, &pPhrase->iHead, pIter->nSnippet);
125811 SnippetPhrase *pPhrase = &pIter->aPhrase[i];
125812 if( pPhrase->pHead && pPhrase->iHead<iEnd ){
125813 iEnd = pPhrase->iHead;
125822 SnippetPhrase *pPhrase = &pIter->aPhrase[i];
125823 fts3SnippetAdvance(&pPhrase->pHead, &pPhrase->iHead, iEnd+1);
125824 fts3SnippetAdvance(&pPhrase->pTail, &pPhrase->iTail, iStart);
125850 SnippetPhrase *pPhrase = &pIter->aPhrase[i];
125851 if( pPhrase->pTail ){
125852 char *pCsr = pPhrase->pTail;
125853 int iCsr = pPhrase->iTail;
125867 for(j=0; j<pPhrase->nToken; j++){
125890 SnippetPhrase *pPhrase = &p->aPhrase[iPhrase];
125893 pPhrase->nToken = pExpr->pPhrase->nToken;
125898 pPhrase->pList = pCsr;
125900 pPhrase->pHead = pCsr;
125901 pPhrase->pTail = pCsr;
125902 pPhrase->iHead = iFirst;
125903 pPhrase->iTail = iFirst;
125905 assert( pPhrase->pList==0 && pPhrase->pHead==0 && pPhrase->pTail==0 );
126466 nToken -= pIter->pExpr->pPhrase->nToken;
126831 nTerm = pExpr->pPhrase->nToken;