Lines Matching refs:pPhrase

542   Fts5ExprPhrase *pPhrase,        /* Phrase object to initialize */  in fts5ExprPhraseIsMatch()  argument
550 int bFirst = pPhrase->aTerm[0].bFirst; in fts5ExprPhraseIsMatch()
552 fts5BufferZero(&pPhrase->poslist); in fts5ExprPhraseIsMatch()
556 if( pPhrase->nTerm>ArraySize(aStatic) ){ in fts5ExprPhraseIsMatch()
557 sqlite3_int64 nByte = sizeof(Fts5PoslistReader) * pPhrase->nTerm; in fts5ExprPhraseIsMatch()
561 memset(aIter, 0, sizeof(Fts5PoslistReader) * pPhrase->nTerm); in fts5ExprPhraseIsMatch()
564 for(i=0; i<pPhrase->nTerm; i++){ in fts5ExprPhraseIsMatch()
565 Fts5ExprTerm *pTerm = &pPhrase->aTerm[i]; in fts5ExprPhraseIsMatch()
591 for(i=0; i<pPhrase->nTerm; i++){ in fts5ExprPhraseIsMatch()
606 rc = sqlite3Fts5PoslistWriterAppend(&pPhrase->poslist, &writer, iPos); in fts5ExprPhraseIsMatch()
610 for(i=0; i<pPhrase->nTerm; i++){ in fts5ExprPhraseIsMatch()
616 *pbMatch = (pPhrase->poslist.n>0); in fts5ExprPhraseIsMatch()
617 for(i=0; i<pPhrase->nTerm; i++){ in fts5ExprPhraseIsMatch()
843 Fts5ExprPhrase *pPhrase = pNear->apPhrase[0]; in fts5ExprNearTest() local
844 pPhrase->poslist.n = 0; in fts5ExprNearTest()
845 for(pTerm=&pPhrase->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){ in fts5ExprNearTest()
849 pPhrase->poslist.n = 1; in fts5ExprNearTest()
853 return pPhrase->poslist.n; in fts5ExprNearTest()
861 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprNearTest() local
862 if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym in fts5ExprNearTest()
863 || pNear->pColset || pPhrase->aTerm[0].bFirst in fts5ExprNearTest()
866 rc = fts5ExprPhraseIsMatch(pNode, pPhrase, &bMatch); in fts5ExprNearTest()
869 Fts5IndexIter *pIter = pPhrase->aTerm[0].pIter; in fts5ExprNearTest()
870 fts5BufferSet(&rc, &pPhrase->poslist, pIter->nData, pIter->pData); in fts5ExprNearTest()
901 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprNearInitAll() local
902 if( pPhrase->nTerm==0 ){ in fts5ExprNearInitAll()
907 for(j=0; j<pPhrase->nTerm; j++){ in fts5ExprNearInitAll()
908 Fts5ExprTerm *pTerm = &pPhrase->aTerm[j]; in fts5ExprNearInitAll()
983 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprNodeZeroPoslist() local
984 pPhrase->poslist.n = 0; in fts5ExprNodeZeroPoslist()
1061 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprNodeTest_STRING() local
1062 for(j=0; j<pPhrase->nTerm; j++){ in fts5ExprNodeTest_STRING()
1063 Fts5ExprTerm *pTerm = &pPhrase->aTerm[j]; in fts5ExprNodeTest_STRING()
1074 Fts5IndexIter *pIter = pPhrase->aTerm[j].pIter; in fts5ExprNodeTest_STRING()
1173 Fts5ExprPhrase *pPhrase = pNode->pNear->apPhrase[0]; in fts5ExprNodeTest_TERM() local
1174 Fts5IndexIter *pIter = pPhrase->aTerm[0].pIter; in fts5ExprNodeTest_TERM()
1177 assert( pNode->pNear->nPhrase==1 && pPhrase->nTerm==1 ); in fts5ExprNodeTest_TERM()
1178 assert( pPhrase->aTerm[0].pSynonym==0 ); in fts5ExprNodeTest_TERM()
1180 pPhrase->poslist.n = pIter->nData; in fts5ExprNodeTest_TERM()
1182 pPhrase->poslist.p = (u8*)pIter->pData; in fts5ExprNodeTest_TERM()
1185 pNode->bNomatch = (pPhrase->poslist.n==0); in fts5ExprNodeTest_TERM()
1549 static void fts5ExprPhraseFree(Fts5ExprPhrase *pPhrase){ in fts5ExprPhraseFree() argument
1550 if( pPhrase ){ in fts5ExprPhraseFree()
1552 for(i=0; i<pPhrase->nTerm; i++){ in fts5ExprPhraseFree()
1555 Fts5ExprTerm *pTerm = &pPhrase->aTerm[i]; in fts5ExprPhraseFree()
1565 if( pPhrase->poslist.nSpace>0 ) fts5BufferFree(&pPhrase->poslist); in fts5ExprPhraseFree()
1566 sqlite3_free(pPhrase); in fts5ExprPhraseFree()
1574 void sqlite3Fts5ParseSetCaret(Fts5ExprPhrase *pPhrase){ in sqlite3Fts5ParseSetCaret() argument
1575 if( pPhrase && pPhrase->nTerm ){ in sqlite3Fts5ParseSetCaret()
1576 pPhrase->aTerm[0].bFirst = 1; in sqlite3Fts5ParseSetCaret()
1591 Fts5ExprPhrase *pPhrase /* Recently parsed phrase */ in sqlite3Fts5ParseNearset() argument
1597 if( pPhrase==0 ){ in sqlite3Fts5ParseNearset()
1626 sqlite3Fts5ParsePhraseFree(pPhrase); in sqlite3Fts5ParseNearset()
1634 if( pPhrase->nTerm==0 ){ in sqlite3Fts5ParseNearset()
1635 fts5ExprPhraseFree(pPhrase); in sqlite3Fts5ParseNearset()
1638 pPhrase = pLast; in sqlite3Fts5ParseNearset()
1641 pParse->apPhrase[pParse->nPhrase-2] = pPhrase; in sqlite3Fts5ParseNearset()
1646 pRet->apPhrase[pRet->nPhrase++] = pPhrase; in sqlite3Fts5ParseNearset()
1653 Fts5ExprPhrase *pPhrase; member
1671 Fts5ExprPhrase *pPhrase = pCtx->pPhrase; in fts5ParseTokenize() local
1679 if( pPhrase && pPhrase->nTerm>0 && (tflags & FTS5_TOKEN_COLOCATED) ){ in fts5ParseTokenize()
1689 pSyn->pSynonym = pPhrase->aTerm[pPhrase->nTerm-1].pSynonym; in fts5ParseTokenize()
1690 pPhrase->aTerm[pPhrase->nTerm-1].pSynonym = pSyn; in fts5ParseTokenize()
1694 if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){ in fts5ParseTokenize()
1696 int nNew = SZALLOC + (pPhrase ? pPhrase->nTerm : 0); in fts5ParseTokenize()
1698 pNew = (Fts5ExprPhrase*)sqlite3_realloc64(pPhrase, in fts5ParseTokenize()
1704 if( pPhrase==0 ) memset(pNew, 0, sizeof(Fts5ExprPhrase)); in fts5ParseTokenize()
1705 pCtx->pPhrase = pPhrase = pNew; in fts5ParseTokenize()
1711 pTerm = &pPhrase->aTerm[pPhrase->nTerm++]; in fts5ParseTokenize()
1725 void sqlite3Fts5ParsePhraseFree(Fts5ExprPhrase *pPhrase){ in sqlite3Fts5ParsePhraseFree() argument
1726 fts5ExprPhraseFree(pPhrase); in sqlite3Fts5ParsePhraseFree()
1779 sCtx.pPhrase = pAppend; in sqlite3Fts5ParseTerm()
1792 fts5ExprPhraseFree(sCtx.pPhrase); in sqlite3Fts5ParseTerm()
1793 sCtx.pPhrase = 0; in sqlite3Fts5ParseTerm()
1798 fts5ExprPhraseFree(sCtx.pPhrase); in sqlite3Fts5ParseTerm()
1804 if( sCtx.pPhrase==0 ){ in sqlite3Fts5ParseTerm()
1807 sCtx.pPhrase = sqlite3Fts5MallocZero(&pParse->rc, sizeof(Fts5ExprPhrase)); in sqlite3Fts5ParseTerm()
1808 }else if( sCtx.pPhrase->nTerm ){ in sqlite3Fts5ParseTerm()
1809 sCtx.pPhrase->aTerm[sCtx.pPhrase->nTerm-1].bPrefix = (u8)bPrefix; in sqlite3Fts5ParseTerm()
1811 pParse->apPhrase[pParse->nPhrase-1] = sCtx.pPhrase; in sqlite3Fts5ParseTerm()
1814 return sCtx.pPhrase; in sqlite3Fts5ParseTerm()
1871 sCtx.pPhrase->aTerm[i].bPrefix = pOrig->aTerm[i].bPrefix; in sqlite3Fts5ExprClonePhrase()
1872 sCtx.pPhrase->aTerm[i].bFirst = pOrig->aTerm[i].bFirst; in sqlite3Fts5ExprClonePhrase()
1878 sCtx.pPhrase = sqlite3Fts5MallocZero(&rc, sizeof(Fts5ExprPhrase)); in sqlite3Fts5ExprClonePhrase()
1881 if( rc==SQLITE_OK && ALWAYS(sCtx.pPhrase) ){ in sqlite3Fts5ExprClonePhrase()
1886 pNew->apExprPhrase[0] = sCtx.pPhrase; in sqlite3Fts5ExprClonePhrase()
1887 pNew->pRoot->pNear->apPhrase[0] = sCtx.pPhrase; in sqlite3Fts5ExprClonePhrase()
1889 sCtx.pPhrase->pNode = pNew->pRoot; in sqlite3Fts5ExprClonePhrase()
1903 fts5ExprPhraseFree(sCtx.pPhrase); in sqlite3Fts5ExprClonePhrase()
2236 Fts5ExprPhrase *pPhrase = (Fts5ExprPhrase*)sqlite3Fts5MallocZero( in fts5ParsePhraseToAnd() local
2239 if( pPhrase ){ in fts5ParsePhraseToAnd()
2241 fts5ExprPhraseFree(pPhrase); in fts5ParsePhraseToAnd()
2243 pParse->apPhrase[pParse->nPhrase++] = pPhrase; in fts5ParsePhraseToAnd()
2244 pPhrase->nTerm = 1; in fts5ParsePhraseToAnd()
2245 pPhrase->aTerm[0].zTerm = sqlite3Fts5Strndup( in fts5ParsePhraseToAnd()
2249 0, 0, sqlite3Fts5ParseNearset(pParse, 0, pPhrase) in fts5ParsePhraseToAnd()
2322 Fts5ExprPhrase *pPhrase = pNear->apPhrase[0]; in sqlite3Fts5ParseNode() local
2324 || pPhrase->nTerm>1 in sqlite3Fts5ParseNode()
2325 || (pPhrase->nTerm>0 && pPhrase->aTerm[0].bFirst) in sqlite3Fts5ParseNode()
2507 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprPrintTcl() local
2510 for(iTerm=0; zRet && iTerm<pPhrase->nTerm; iTerm++){ in fts5ExprPrintTcl()
2511 char *zTerm = pPhrase->aTerm[iTerm].zTerm; in fts5ExprPrintTcl()
2513 if( pPhrase->aTerm[iTerm].bPrefix ){ in fts5ExprPrintTcl()
2580 Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; in fts5ExprPrint() local
2585 for(iTerm=0; iTerm<pPhrase->nTerm; iTerm++){ in fts5ExprPrint()
2586 char *zTerm = fts5ExprTermPrint(&pPhrase->aTerm[iTerm]); in fts5ExprPrint()
2844 Fts5ExprPhrase *pPhrase = pExpr->apExprPhrase[iPhrase]; in sqlite3Fts5ExprPoslist() local
2845 Fts5ExprNode *pNode = pPhrase->pNode; in sqlite3Fts5ExprPoslist()
2847 *pa = pPhrase->poslist.p; in sqlite3Fts5ExprPoslist()
2848 nRet = pPhrase->poslist.n; in sqlite3Fts5ExprPoslist()
3044 Fts5ExprPhrase *pPhrase = pExpr->apExprPhrase[iPhrase]; in sqlite3Fts5ExprPhraseCollist() local
3045 Fts5ExprNode *pNode = pPhrase->pNode; in sqlite3Fts5ExprPhraseCollist()
3053 && pPhrase->poslist.n>0 in sqlite3Fts5ExprPhraseCollist()
3055 Fts5ExprTerm *pTerm = &pPhrase->aTerm[0]; in sqlite3Fts5ExprPhraseCollist()
3062 *ppCollist = pPhrase->aTerm[0].pIter->pData; in sqlite3Fts5ExprPhraseCollist()
3063 *pnCollist = pPhrase->aTerm[0].pIter->nData; in sqlite3Fts5ExprPhraseCollist()