pCsr 62180 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3BtreePutData(BtCursor *pCsr, u32 offset, u32 amt, void *z){ pCsr 62182 ext/sqlite3/libsqlite/sqlite3.c assert( cursorHoldsMutex(pCsr) ); pCsr 62183 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3_mutex_held(pCsr->pBtree->db->mutex) ); pCsr 62184 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->curFlags & BTCF_Incrblob ); pCsr 62186 ext/sqlite3/libsqlite/sqlite3.c rc = restoreCursorPosition(pCsr); pCsr 62190 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->eState!=CURSOR_REQUIRESEEK ); pCsr 62191 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->eState!=CURSOR_VALID ){ pCsr 62203 ext/sqlite3/libsqlite/sqlite3.c VVA_ONLY(rc =) saveAllCursors(pCsr->pBt, pCsr->pgnoRoot, pCsr); pCsr 62213 ext/sqlite3/libsqlite/sqlite3.c if( (pCsr->curFlags & BTCF_WriteFlag)==0 ){ pCsr 62216 ext/sqlite3/libsqlite/sqlite3.c assert( (pCsr->pBt->btsFlags & BTS_READ_ONLY)==0 pCsr 62217 ext/sqlite3/libsqlite/sqlite3.c && pCsr->pBt->inTransaction==TRANS_WRITE ); pCsr 62218 ext/sqlite3/libsqlite/sqlite3.c assert( hasSharedCacheTableLock(pCsr->pBtree, pCsr->pgnoRoot, 0, 2) ); pCsr 62219 ext/sqlite3/libsqlite/sqlite3.c assert( !hasReadConflicts(pCsr->pBtree, pCsr->pgnoRoot) ); pCsr 62220 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->apPage[pCsr->iPage]->intKey ); pCsr 62222 ext/sqlite3/libsqlite/sqlite3.c return accessPayload(pCsr, offset, amt, (unsigned char *)z, 1); pCsr 62272 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3BtreeCursorHints(BtCursor *pCsr, unsigned int mask){ pCsr 62274 ext/sqlite3/libsqlite/sqlite3.c pCsr->hints = mask; pCsr 62282 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3BtreeCursorHasHint(BtCursor *pCsr, unsigned int mask){ pCsr 62283 ext/sqlite3/libsqlite/sqlite3.c return (pCsr->hints & mask)!=0; pCsr 77452 ext/sqlite3/libsqlite/sqlite3.c BtCursor *pCsr; /* Cursor pointing at blob row */ pCsr 77501 ext/sqlite3/libsqlite/sqlite3.c p->pCsr = pC->pCursor; pCsr 77502 ext/sqlite3/libsqlite/sqlite3.c sqlite3BtreeIncrblobCursor(p->pCsr); pCsr 77816 ext/sqlite3/libsqlite/sqlite3.c sqlite3BtreeEnterCursor(p->pCsr); pCsr 77817 ext/sqlite3/libsqlite/sqlite3.c rc = xCall(p->pCsr, iOffset+p->iOffset, n, z); pCsr 77818 ext/sqlite3/libsqlite/sqlite3.c sqlite3BtreeLeaveCursor(p->pCsr); pCsr 78828 ext/sqlite3/libsqlite/sqlite3.c VdbeCursor *pCsr /* Cursor that holds the new sorter */ pCsr 78861 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->pKeyInfo && pCsr->pBt==0 ); pCsr 78862 ext/sqlite3/libsqlite/sqlite3.c szKeyInfo = sizeof(KeyInfo) + (pCsr->pKeyInfo->nField-1)*sizeof(CollSeq*); pCsr 78866 ext/sqlite3/libsqlite/sqlite3.c pCsr->pSorter = pSorter; pCsr 78871 ext/sqlite3/libsqlite/sqlite3.c memcpy(pKeyInfo, pCsr->pKeyInfo, szKeyInfo); pCsr 79149 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3VdbeSorterClose(sqlite3 *db, VdbeCursor *pCsr){ pCsr 79150 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 79155 ext/sqlite3/libsqlite/sqlite3.c pCsr->pSorter = 0; pCsr 79650 ext/sqlite3/libsqlite/sqlite3.c const VdbeCursor *pCsr, /* Sorter cursor */ pCsr 79653 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 80452 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3VdbeSorterRewind(const VdbeCursor *pCsr, int *pbEof){ pCsr 80453 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 80498 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3VdbeSorterNext(sqlite3 *db, const VdbeCursor *pCsr, int *pbEof){ pCsr 80499 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 80560 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3VdbeSorterRowkey(const VdbeCursor *pCsr, Mem *pOut){ pCsr 80561 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 80592 ext/sqlite3/libsqlite/sqlite3.c const VdbeCursor *pCsr, /* Sorter cursor */ pCsr 80597 ext/sqlite3/libsqlite/sqlite3.c VdbeSorter *pSorter = pCsr->pSorter; pCsr 80599 ext/sqlite3/libsqlite/sqlite3.c KeyInfo *pKeyInfo = pCsr->pKeyInfo; pCsr 132580 ext/sqlite3/libsqlite/sqlite3.c int (*xLanguageid)(sqlite3_tokenizer_cursor *pCsr, int iLangid); pCsr 133270 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr); pCsr 133304 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalNext(Fts3Cursor *pCsr); pCsr 133305 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalStart(Fts3Cursor *pCsr); pCsr 134644 ext/sqlite3/libsqlite/sqlite3.c sqlite3_vtab_cursor *pCsr; /* Allocated cursor */ pCsr 134652 ext/sqlite3/libsqlite/sqlite3.c *ppCsr = pCsr = (sqlite3_vtab_cursor *)sqlite3_malloc(sizeof(Fts3Cursor)); pCsr 134653 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr ){ pCsr 134656 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(Fts3Cursor)); pCsr 134665 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr = (Fts3Cursor *)pCursor; pCsr 134666 ext/sqlite3/libsqlite/sqlite3.c assert( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 ); pCsr 134667 ext/sqlite3/libsqlite/sqlite3.c sqlite3_finalize(pCsr->pStmt); pCsr 134668 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3ExprFree(pCsr->pExpr); pCsr 134669 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3FreeDeferredTokens(pCsr); pCsr 134670 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aDoclist); pCsr 134671 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aMatchinfo); pCsr 134672 ext/sqlite3/libsqlite/sqlite3.c assert( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 ); pCsr 134673 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 134688 ext/sqlite3/libsqlite/sqlite3.c static int fts3CursorSeekStmt(Fts3Cursor *pCsr, sqlite3_stmt **ppStmt){ pCsr 134690 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pStmt==0 ){ pCsr 134691 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *p = (Fts3Table *)pCsr->base.pVtab; pCsr 134695 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_prepare_v2(p->db, zSql, -1, &pCsr->pStmt, 0); pCsr 134698 ext/sqlite3/libsqlite/sqlite3.c *ppStmt = pCsr->pStmt; pCsr 134707 ext/sqlite3/libsqlite/sqlite3.c static int fts3CursorSeek(sqlite3_context *pContext, Fts3Cursor *pCsr){ pCsr 134709 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->isRequireSeek ){ pCsr 134712 ext/sqlite3/libsqlite/sqlite3.c rc = fts3CursorSeekStmt(pCsr, &pStmt); pCsr 134714 ext/sqlite3/libsqlite/sqlite3.c sqlite3_bind_int64(pCsr->pStmt, 1, pCsr->iPrevId); pCsr 134715 ext/sqlite3/libsqlite/sqlite3.c pCsr->isRequireSeek = 0; pCsr 134716 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_ROW==sqlite3_step(pCsr->pStmt) ){ pCsr 134719 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_reset(pCsr->pStmt); pCsr 134720 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){ pCsr 134725 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 135770 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, pCsr 135773 ext/sqlite3/libsqlite/sqlite3.c if( (pCsr->nSegment%16)==0 ){ pCsr 135775 ext/sqlite3/libsqlite/sqlite3.c int nByte = (pCsr->nSegment + 16)*sizeof(Fts3SegReader*); pCsr 135776 ext/sqlite3/libsqlite/sqlite3.c apNew = (Fts3SegReader **)sqlite3_realloc(pCsr->apSegment, nByte); pCsr 135781 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment = apNew; pCsr 135783 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment[pCsr->nSegment++] = pNew; pCsr 135803 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor object to populate */ pCsr 135819 ext/sqlite3/libsqlite/sqlite3.c rc = fts3SegReaderCursorAppend(pCsr, pSeg); pCsr 135847 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderNew(pCsr->nSegment+1, pCsr 135853 ext/sqlite3/libsqlite/sqlite3.c rc = fts3SegReaderCursorAppend(pCsr, pSeg); pCsr 135877 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor object to populate */ pCsr 135888 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(Fts3MultiSegReader)); pCsr 135890 ext/sqlite3/libsqlite/sqlite3.c p, iLangid, iIndex, iLevel, zTerm, nTerm, isPrefix, isScan, pCsr pCsr 135905 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Fts3MultiSegReader to modify */ pCsr 135908 ext/sqlite3/libsqlite/sqlite3.c iLangid, 0, FTS3_SEGCURSOR_ALL, zTerm, nTerm, 0, 0,pCsr pCsr 135926 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Virtual table cursor handle */ pCsr 135939 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *p = (Fts3Table *)pCsr->base.pVtab; pCsr 135945 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderCursor(p, pCsr->iLangid, pCsr 135955 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderCursor(p, pCsr->iLangid, pCsr 135960 ext/sqlite3/libsqlite/sqlite3.c p, pCsr->iLangid, zTerm, nTerm, pSegcsr pCsr 135968 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderCursor(p, pCsr->iLangid, pCsr 136076 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr = (Fts3Cursor *)pCursor; pCsr 136077 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->eSearch==FTS3_DOCID_SEARCH || pCsr->eSearch==FTS3_FULLSCAN_SEARCH ){ pCsr 136078 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_ROW!=sqlite3_step(pCsr->pStmt) ){ pCsr 136079 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 136080 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_reset(pCsr->pStmt); pCsr 136082 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPrevId = sqlite3_column_int64(pCsr->pStmt, 0); pCsr 136088 ext/sqlite3/libsqlite/sqlite3.c assert( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 ); pCsr 136146 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr = (Fts3Cursor *)pCursor; pCsr 136170 ext/sqlite3/libsqlite/sqlite3.c sqlite3_finalize(pCsr->pStmt); pCsr 136171 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aDoclist); pCsr 136172 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aMatchinfo); pCsr 136173 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3ExprFree(pCsr->pExpr); pCsr 136177 ext/sqlite3/libsqlite/sqlite3.c pCsr->iMinDocid = fts3DocidRange(pDocidGe, SMALLEST_INT64); pCsr 136178 ext/sqlite3/libsqlite/sqlite3.c pCsr->iMaxDocid = fts3DocidRange(pDocidLe, LARGEST_INT64); pCsr 136181 ext/sqlite3/libsqlite/sqlite3.c pCsr->bDesc = (idxStr[0]=='D'); pCsr 136183 ext/sqlite3/libsqlite/sqlite3.c pCsr->bDesc = p->bDescIdx; pCsr 136185 ext/sqlite3/libsqlite/sqlite3.c pCsr->eSearch = (i16)eSearch; pCsr 136195 ext/sqlite3/libsqlite/sqlite3.c pCsr->iLangid = 0; pCsr 136196 ext/sqlite3/libsqlite/sqlite3.c if( pLangid ) pCsr->iLangid = sqlite3_value_int(pLangid); pCsr 136199 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3ExprParse(p->pTokenizer, pCsr->iLangid, pCsr 136200 ext/sqlite3/libsqlite/sqlite3.c p->azColumn, p->bFts4, p->nColumn, iCol, zQuery, -1, &pCsr->pExpr, pCsr 136207 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalStart(pCsr); pCsr 136210 ext/sqlite3/libsqlite/sqlite3.c pCsr->pNextId = pCsr->aDoclist; pCsr 136211 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPrevId = 0; pCsr 136223 ext/sqlite3/libsqlite/sqlite3.c p->zReadExprlist, pCsr->iMinDocid, pCsr->iMaxDocid, pCsr 136224 ext/sqlite3/libsqlite/sqlite3.c (pCsr->bDesc ? "DESC" : "ASC") pCsr 136228 ext/sqlite3/libsqlite/sqlite3.c p->zReadExprlist, (pCsr->bDesc ? "DESC" : "ASC") pCsr 136232 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_prepare_v2(p->db, zSql, -1, &pCsr->pStmt, 0); pCsr 136238 ext/sqlite3/libsqlite/sqlite3.c rc = fts3CursorSeekStmt(pCsr, &pCsr->pStmt); pCsr 136240 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_bind_value(pCsr->pStmt, 1, pCons); pCsr 136263 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr = (Fts3Cursor *) pCursor; pCsr 136264 ext/sqlite3/libsqlite/sqlite3.c *pRowid = pCsr->iPrevId; pCsr 136285 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr = (Fts3Cursor *) pCursor; pCsr 136295 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int64(pCtx, pCsr->iPrevId); pCsr 136299 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_blob(pCtx, &pCsr, sizeof(pCsr), SQLITE_TRANSIENT); pCsr 136300 ext/sqlite3/libsqlite/sqlite3.c }else if( iCol==p->nColumn+2 && pCsr->pExpr ){ pCsr 136301 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int64(pCtx, pCsr->iLangid); pCsr 136305 ext/sqlite3/libsqlite/sqlite3.c rc = fts3CursorSeek(0, pCsr); pCsr 136311 ext/sqlite3/libsqlite/sqlite3.c iLangid = sqlite3_column_int(pCsr->pStmt, p->nColumn+1); pCsr 136314 ext/sqlite3/libsqlite/sqlite3.c }else if( sqlite3_data_count(pCsr->pStmt)>(iCol+1) ){ pCsr 136315 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_value(pCtx, sqlite3_column_value(pCsr->pStmt, iCol+1)); pCsr 136320 ext/sqlite3/libsqlite/sqlite3.c assert( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 ); pCsr 136533 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; /* Cursor handle passed through apVal[0] */ pCsr 136550 ext/sqlite3/libsqlite/sqlite3.c if( fts3FunctionArg(pContext, "snippet", apVal[0], &pCsr) ) return; pCsr 136563 ext/sqlite3/libsqlite/sqlite3.c }else if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){ pCsr 136564 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3Snippet(pContext, pCsr, zStart, zEnd, zEllipsis, iCol, nToken); pCsr 136576 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; /* Cursor handle passed through apVal[0] */ pCsr 136581 ext/sqlite3/libsqlite/sqlite3.c if( fts3FunctionArg(pContext, "offsets", apVal[0], &pCsr) ) return; pCsr 136582 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr ); pCsr 136583 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){ pCsr 136584 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3Offsets(pContext, pCsr); pCsr 136636 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; /* Cursor handle passed through apVal[0] */ pCsr 136638 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK==fts3FunctionArg(pContext, "matchinfo", apVal[0], &pCsr) ){ pCsr 136643 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3Matchinfo(pContext, pCsr, zArg); pCsr 136960 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS cursor handle */ pCsr 136973 ext/sqlite3/libsqlite/sqlite3.c int rc = fts3TermSegReaderCursor(pCsr, pCsr 136985 ext/sqlite3/libsqlite/sqlite3.c fts3EvalAllocateReaders(pCsr, pExpr->pLeft, pnToken, pnOr, pRc); pCsr 136986 ext/sqlite3/libsqlite/sqlite3.c fts3EvalAllocateReaders(pCsr, pExpr->pRight, pnToken, pnOr, pRc); pCsr 137066 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137069 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137101 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){ pCsr 137155 ext/sqlite3/libsqlite/sqlite3.c pPhrase->doclist.iDocid = pCsr->iPrevId; pCsr 137213 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalPhraseStart(Fts3Cursor *pCsr, int bOptOk, Fts3Phrase *p){ pCsr 137214 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137225 ext/sqlite3/libsqlite/sqlite3.c && pCsr->bDesc==pTab->bDescIdx pCsr 137253 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalPhraseLoad(pCsr, p); pCsr 137479 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137485 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137498 ext/sqlite3/libsqlite/sqlite3.c int bDescDoclist = pCsr->bDesc; pCsr 137579 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137585 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137588 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalIncrPhraseNext(pCsr, p, pbEof); pCsr 137589 ext/sqlite3/libsqlite/sqlite3.c }else if( pCsr->bDesc!=pTab->bDescIdx && pDL->nAll ){ pCsr 137618 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137632 ext/sqlite3/libsqlite/sqlite3.c *pRc = fts3EvalPhraseStart(pCsr, 1, pExpr->pPhrase); pCsr 137634 ext/sqlite3/libsqlite/sqlite3.c fts3EvalStartReaders(pCsr, pExpr->pLeft, pRc); pCsr 137635 ext/sqlite3/libsqlite/sqlite3.c fts3EvalStartReaders(pCsr, pExpr->pRight, pRc); pCsr 137671 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137689 ext/sqlite3/libsqlite/sqlite3.c *pRc = sqlite3Fts3MsrOvfl(pCsr, pTC->pToken->pSegcsr, &pTC->nOvfl); pCsr 137702 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTokenCosts(pCsr, pRoot, pExpr->pLeft, ppTC, ppOr, pRc); pCsr 137708 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTokenCosts(pCsr, pRoot, pExpr->pRight, ppTC, ppOr, pRc); pCsr 137724 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalAverageDocsize(Fts3Cursor *pCsr, int *pnPage){ pCsr 137725 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->nRowAvg==0 ){ pCsr 137738 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *p = (Fts3Table*)pCsr->base.pVtab; pCsr 137760 ext/sqlite3/libsqlite/sqlite3.c pCsr->nDoc = nDoc; pCsr 137761 ext/sqlite3/libsqlite/sqlite3.c pCsr->nRowAvg = (int)(((nByte / nDoc) + p->nPgsz) / p->nPgsz); pCsr 137762 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->nRowAvg>0 ); pCsr 137767 ext/sqlite3/libsqlite/sqlite3.c *pnPage = pCsr->nRowAvg; pCsr 137786 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 137791 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137822 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalAverageDocsize(pCsr, &nDocSize); pCsr 137868 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3DeferToken(pCsr, pToken, pTC->iCol); pCsr 137918 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalStart(Fts3Cursor *pCsr){ pCsr 137919 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 137925 ext/sqlite3/libsqlite/sqlite3.c fts3EvalAllocateReaders(pCsr, pCsr->pExpr, &nToken, &nOr, &rc); pCsr 137945 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTokenCosts(pCsr, 0, pCsr->pExpr, &pTC, &ppOr, &rc); pCsr 137950 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalSelectDeferred(pCsr, 0, aTC, nToken); pCsr 137952 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalSelectDeferred(pCsr, apOr[ii], aTC, nToken); pCsr 137961 ext/sqlite3/libsqlite/sqlite3.c fts3EvalStartReaders(pCsr, pCsr->pExpr, &rc); pCsr 138074 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS Cursor handle */ pCsr 138079 ext/sqlite3/libsqlite/sqlite3.c int bDescDoclist = pCsr->bDesc; /* Used by DOCID_CMP() macro */ pCsr 138093 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138099 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138104 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138105 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138110 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138112 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138122 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138129 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138146 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138148 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138150 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138151 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138170 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138174 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pLeft, pRc); pCsr 138180 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRight, pRc); pCsr 138191 ext/sqlite3/libsqlite/sqlite3.c *pRc = fts3EvalPhraseNext(pCsr, pPhrase, &pExpr->bEof); pCsr 138301 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS cursor handle */ pCsr 138311 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTestExpr(pCsr, pExpr->pLeft, pRc) pCsr 138312 ext/sqlite3/libsqlite/sqlite3.c && fts3EvalTestExpr(pCsr, pExpr->pRight, pRc) pCsr 138337 ext/sqlite3/libsqlite/sqlite3.c if( p->pRight->iDocid==pCsr->iPrevId ){ pCsr 138341 ext/sqlite3/libsqlite/sqlite3.c if( p->iDocid==pCsr->iPrevId ){ pCsr 138349 ext/sqlite3/libsqlite/sqlite3.c int bHit1 = fts3EvalTestExpr(pCsr, pExpr->pLeft, pRc); pCsr 138350 ext/sqlite3/libsqlite/sqlite3.c int bHit2 = fts3EvalTestExpr(pCsr, pExpr->pRight, pRc); pCsr 138357 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTestExpr(pCsr, pExpr->pLeft, pRc) pCsr 138358 ext/sqlite3/libsqlite/sqlite3.c && !fts3EvalTestExpr(pCsr, pExpr->pRight, pRc) pCsr 138364 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pDeferred pCsr 138365 ext/sqlite3/libsqlite/sqlite3.c && (pExpr->iDocid==pCsr->iPrevId || pExpr->bDeferred) pCsr 138372 ext/sqlite3/libsqlite/sqlite3.c *pRc = fts3EvalDeferredPhrase(pCsr, pPhrase); pCsr 138374 ext/sqlite3/libsqlite/sqlite3.c pExpr->iDocid = pCsr->iPrevId; pCsr 138378 ext/sqlite3/libsqlite/sqlite3.c bHit = (pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId); pCsr 138411 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalTestDeferredAndNear(Fts3Cursor *pCsr, int *pRc){ pCsr 138422 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pDeferred ){ pCsr 138423 ext/sqlite3/libsqlite/sqlite3.c rc = fts3CursorSeek(0, pCsr); pCsr 138425 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3CacheDeferredDoclists(pCsr); pCsr 138428 ext/sqlite3/libsqlite/sqlite3.c bMiss = (0==fts3EvalTestExpr(pCsr, pCsr->pExpr, &rc)); pCsr 138431 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3FreeDeferredDoclists(pCsr); pCsr 138441 ext/sqlite3/libsqlite/sqlite3.c static int fts3EvalNext(Fts3Cursor *pCsr){ pCsr 138443 ext/sqlite3/libsqlite/sqlite3.c Fts3Expr *pExpr = pCsr->pExpr; pCsr 138444 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->isEof==0 ); pCsr 138446 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 138449 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->isRequireSeek==0 ){ pCsr 138450 ext/sqlite3/libsqlite/sqlite3.c sqlite3_reset(pCsr->pStmt); pCsr 138452 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3_data_count(pCsr->pStmt)==0 ); pCsr 138453 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pExpr, &rc); pCsr 138454 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = pExpr->bEof; pCsr 138455 ext/sqlite3/libsqlite/sqlite3.c pCsr->isRequireSeek = 1; pCsr 138456 ext/sqlite3/libsqlite/sqlite3.c pCsr->isMatchinfoNeeded = 1; pCsr 138457 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPrevId = pExpr->iDocid; pCsr 138458 ext/sqlite3/libsqlite/sqlite3.c }while( pCsr->isEof==0 && fts3EvalTestDeferredAndNear(pCsr, &rc) ); pCsr 138464 ext/sqlite3/libsqlite/sqlite3.c (pCsr->bDesc==0 && pCsr->iPrevId>pCsr->iMaxDocid) pCsr 138465 ext/sqlite3/libsqlite/sqlite3.c || (pCsr->bDesc!=0 && pCsr->iPrevId<pCsr->iMinDocid) pCsr 138467 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 138483 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, pCsr 138501 ext/sqlite3/libsqlite/sqlite3.c *pRc = fts3EvalPhraseStart(pCsr, 0, pPhrase); pCsr 138512 ext/sqlite3/libsqlite/sqlite3.c fts3EvalRestart(pCsr, pExpr->pLeft, pRc); pCsr 138513 ext/sqlite3/libsqlite/sqlite3.c fts3EvalRestart(pCsr, pExpr->pRight, pRc); pCsr 138569 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Cursor object */ pCsr 138576 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 138580 ext/sqlite3/libsqlite/sqlite3.c sqlite3_int64 iPrevId = pCsr->iPrevId; pCsr 138602 ext/sqlite3/libsqlite/sqlite3.c fts3EvalRestart(pCsr, pRoot, &rc); pCsr 138604 ext/sqlite3/libsqlite/sqlite3.c while( pCsr->isEof==0 && rc==SQLITE_OK ){ pCsr 138608 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->isRequireSeek==0 ) sqlite3_reset(pCsr->pStmt); pCsr 138609 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3_data_count(pCsr->pStmt)==0 ); pCsr 138612 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRoot, &rc); pCsr 138613 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = pRoot->bEof; pCsr 138614 ext/sqlite3/libsqlite/sqlite3.c pCsr->isRequireSeek = 1; pCsr 138615 ext/sqlite3/libsqlite/sqlite3.c pCsr->isMatchinfoNeeded = 1; pCsr 138616 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPrevId = pRoot->iDocid; pCsr 138617 ext/sqlite3/libsqlite/sqlite3.c }while( pCsr->isEof==0 pCsr 138619 ext/sqlite3/libsqlite/sqlite3.c && fts3EvalTestDeferredAndNear(pCsr, &rc) pCsr 138622 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && pCsr->isEof==0 ){ pCsr 138627 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 0; pCsr 138628 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPrevId = iPrevId; pCsr 138639 ext/sqlite3/libsqlite/sqlite3.c fts3EvalRestart(pCsr, pRoot, &rc); pCsr 138641 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pRoot, &rc); pCsr 138644 ext/sqlite3/libsqlite/sqlite3.c fts3EvalTestDeferredAndNear(pCsr, &rc); pCsr 138681 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS cursor handle */ pCsr 138685 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 138690 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->nDoc>0 ); pCsr 138692 ext/sqlite3/libsqlite/sqlite3.c aiOut[iCol*3 + 1] = (u32)pCsr->nDoc; pCsr 138693 ext/sqlite3/libsqlite/sqlite3.c aiOut[iCol*3 + 2] = (u32)pCsr->nDoc; pCsr 138696 ext/sqlite3/libsqlite/sqlite3.c rc = fts3EvalGatherStats(pCsr, pExpr); pCsr 138729 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS3 cursor object */ pCsr 138735 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 138750 ext/sqlite3/libsqlite/sqlite3.c if( iDocid!=pCsr->iPrevId || pExpr->bEof ){ pCsr 138777 ext/sqlite3/libsqlite/sqlite3.c fts3EvalRestart(pCsr, pNear, &rc); pCsr 138779 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pNear, &rc); pCsr 138786 ext/sqlite3/libsqlite/sqlite3.c fts3EvalNextRow(pCsr, pNear, &rc); pCsr 138793 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->bDesc==bDescDoclist ){ pCsr 138796 ext/sqlite3/libsqlite/sqlite3.c while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){ pCsr 138804 ext/sqlite3/libsqlite/sqlite3.c while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){ pCsr 138815 ext/sqlite3/libsqlite/sqlite3.c if( bEof || iDocid!=pCsr->iPrevId ) pIter = 0; pCsr 139108 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr; /* Pointer to cursor object to return */ pCsr 139112 ext/sqlite3/libsqlite/sqlite3.c pCsr = (Fts3auxCursor *)sqlite3_malloc(sizeof(Fts3auxCursor)); pCsr 139113 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr ) return SQLITE_NOMEM; pCsr 139114 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(Fts3auxCursor)); pCsr 139116 ext/sqlite3/libsqlite/sqlite3.c *ppCsr = (sqlite3_vtab_cursor *)pCsr; pCsr 139125 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr = (Fts3auxCursor *)pCursor; pCsr 139128 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3SegReaderFinish(&pCsr->csr); pCsr 139129 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free((void *)pCsr->filter.zTerm); pCsr 139130 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zStop); pCsr 139131 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aStat); pCsr 139132 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 139136 ext/sqlite3/libsqlite/sqlite3.c static int fts3auxGrowStatArray(Fts3auxCursor *pCsr, int nSize){ pCsr 139137 ext/sqlite3/libsqlite/sqlite3.c if( nSize>pCsr->nStat ){ pCsr 139139 ext/sqlite3/libsqlite/sqlite3.c aNew = (struct Fts3auxColstats *)sqlite3_realloc(pCsr->aStat, pCsr 139143 ext/sqlite3/libsqlite/sqlite3.c memset(&aNew[pCsr->nStat], 0, pCsr 139144 ext/sqlite3/libsqlite/sqlite3.c sizeof(struct Fts3auxColstats) * (nSize - pCsr->nStat) pCsr 139146 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat = aNew; pCsr 139147 ext/sqlite3/libsqlite/sqlite3.c pCsr->nStat = nSize; pCsr 139156 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr = (Fts3auxCursor *)pCursor; pCsr 139161 ext/sqlite3/libsqlite/sqlite3.c pCsr->iRowid++; pCsr 139163 ext/sqlite3/libsqlite/sqlite3.c for(pCsr->iCol++; pCsr->iCol<pCsr->nStat; pCsr->iCol++){ pCsr 139164 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->aStat[pCsr->iCol].nDoc>0 ) return SQLITE_OK; pCsr 139167 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderStep(pFts3, &pCsr->csr); pCsr 139170 ext/sqlite3/libsqlite/sqlite3.c int nDoclist = pCsr->csr.nDoclist; pCsr 139171 ext/sqlite3/libsqlite/sqlite3.c char *aDoclist = pCsr->csr.aDoclist; pCsr 139176 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->zStop ){ pCsr 139177 ext/sqlite3/libsqlite/sqlite3.c int n = (pCsr->nStop<pCsr->csr.nTerm) ? pCsr->nStop : pCsr->csr.nTerm; pCsr 139178 ext/sqlite3/libsqlite/sqlite3.c int mc = memcmp(pCsr->zStop, pCsr->csr.zTerm, n); pCsr 139179 ext/sqlite3/libsqlite/sqlite3.c if( mc<0 || (mc==0 && pCsr->csr.nTerm>pCsr->nStop) ){ pCsr 139180 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 139185 ext/sqlite3/libsqlite/sqlite3.c if( fts3auxGrowStatArray(pCsr, 2) ) return SQLITE_NOMEM; pCsr 139186 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr->aStat, 0, sizeof(struct Fts3auxColstats) * pCsr->nStat); pCsr 139196 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat[0].nDoc++; pCsr 139212 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat[1].nDoc++; pCsr 139223 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat[iCol+1].nOcc++; pCsr 139224 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat[0].nOcc++; pCsr 139231 ext/sqlite3/libsqlite/sqlite3.c if( fts3auxGrowStatArray(pCsr, iCol+2) ) return SQLITE_NOMEM; pCsr 139232 ext/sqlite3/libsqlite/sqlite3.c pCsr->aStat[iCol+1].nDoc++; pCsr 139238 ext/sqlite3/libsqlite/sqlite3.c pCsr->iCol = 0; pCsr 139241 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 139256 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr = (Fts3auxCursor *)pCursor; pCsr 139293 ext/sqlite3/libsqlite/sqlite3.c testcase(pCsr->filter.zTerm); pCsr 139294 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3SegReaderFinish(&pCsr->csr); pCsr 139295 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free((void *)pCsr->filter.zTerm); pCsr 139296 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aStat); pCsr 139297 ext/sqlite3/libsqlite/sqlite3.c memset(&pCsr->csr, 0, ((u8*)&pCsr[1]) - (u8*)&pCsr->csr); pCsr 139299 ext/sqlite3/libsqlite/sqlite3.c pCsr->filter.flags = FTS3_SEGMENT_REQUIRE_POS|FTS3_SEGMENT_IGNORE_EMPTY; pCsr 139300 ext/sqlite3/libsqlite/sqlite3.c if( isScan ) pCsr->filter.flags |= FTS3_SEGMENT_SCAN; pCsr 139306 ext/sqlite3/libsqlite/sqlite3.c pCsr->filter.zTerm = sqlite3_mprintf("%s", zStr); pCsr 139307 ext/sqlite3/libsqlite/sqlite3.c pCsr->filter.nTerm = sqlite3_value_bytes(apVal[0]); pCsr 139308 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->filter.zTerm==0 ) return SQLITE_NOMEM; pCsr 139313 ext/sqlite3/libsqlite/sqlite3.c pCsr->zStop = sqlite3_mprintf("%s", sqlite3_value_text(apVal[iLe])); pCsr 139314 ext/sqlite3/libsqlite/sqlite3.c pCsr->nStop = sqlite3_value_bytes(apVal[iLe]); pCsr 139315 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->zStop==0 ) return SQLITE_NOMEM; pCsr 139328 ext/sqlite3/libsqlite/sqlite3.c pCsr->iLangid = iLangVal; pCsr 139331 ext/sqlite3/libsqlite/sqlite3.c pCsr->filter.zTerm, pCsr->filter.nTerm, 0, isScan, &pCsr->csr pCsr 139334 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SegReaderStart(pFts3, &pCsr->csr, &pCsr->filter); pCsr 139345 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr = (Fts3auxCursor *)pCursor; pCsr 139346 ext/sqlite3/libsqlite/sqlite3.c return pCsr->isEof; pCsr 139397 ext/sqlite3/libsqlite/sqlite3.c Fts3auxCursor *pCsr = (Fts3auxCursor *)pCursor; pCsr 139398 ext/sqlite3/libsqlite/sqlite3.c *pRowid = pCsr->iRowid; pCsr 139579 ext/sqlite3/libsqlite/sqlite3.c sqlite3_tokenizer_cursor *pCsr = 0; pCsr 139582 ext/sqlite3/libsqlite/sqlite3.c rc = pModule->xOpen(pTokenizer, z, n, &pCsr); pCsr 139583 ext/sqlite3/libsqlite/sqlite3.c assert( rc==SQLITE_OK || pCsr==0 ); pCsr 139585 ext/sqlite3/libsqlite/sqlite3.c pCsr->pTokenizer = pTokenizer; pCsr 139587 ext/sqlite3/libsqlite/sqlite3.c rc = pModule->xLanguageid(pCsr, iLangid); pCsr 139589 ext/sqlite3/libsqlite/sqlite3.c pModule->xClose(pCsr); pCsr 139590 ext/sqlite3/libsqlite/sqlite3.c pCsr = 0; pCsr 139594 ext/sqlite3/libsqlite/sqlite3.c *ppCsr = pCsr; pCsr 142020 ext/sqlite3/libsqlite/sqlite3.c sqlite3_tokenizer_cursor *pCsr = 0; pCsr 142072 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3Fts3OpenTokenizer(pTokenizer, 0, zInput, nInput, &pCsr) ){ pCsr 142077 ext/sqlite3/libsqlite/sqlite3.c while( SQLITE_OK==p->xNext(pCsr, &zToken, &nToken, &iStart, &iEnd, &iPos) ){ pCsr 142085 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK!=p->xClose(pCsr) ){ pCsr 142568 ext/sqlite3/libsqlite/sqlite3.c sqlite3_tokenizer_cursor *pCsr; /* Cursor to iterate through zInput */ pCsr 142766 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr; pCsr 142769 ext/sqlite3/libsqlite/sqlite3.c pCsr = (Fts3tokCursor *)sqlite3_malloc(sizeof(Fts3tokCursor)); pCsr 142770 ext/sqlite3/libsqlite/sqlite3.c if( pCsr==0 ){ pCsr 142773 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(Fts3tokCursor)); pCsr 142775 ext/sqlite3/libsqlite/sqlite3.c *ppCsr = (sqlite3_vtab_cursor *)pCsr; pCsr 142783 ext/sqlite3/libsqlite/sqlite3.c static void fts3tokResetCursor(Fts3tokCursor *pCsr){ pCsr 142784 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pCsr ){ pCsr 142785 ext/sqlite3/libsqlite/sqlite3.c Fts3tokTable *pTab = (Fts3tokTable *)(pCsr->base.pVtab); pCsr 142786 ext/sqlite3/libsqlite/sqlite3.c pTab->pMod->xClose(pCsr->pCsr); pCsr 142787 ext/sqlite3/libsqlite/sqlite3.c pCsr->pCsr = 0; pCsr 142789 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zInput); pCsr 142790 ext/sqlite3/libsqlite/sqlite3.c pCsr->zInput = 0; pCsr 142791 ext/sqlite3/libsqlite/sqlite3.c pCsr->zToken = 0; pCsr 142792 ext/sqlite3/libsqlite/sqlite3.c pCsr->nToken = 0; pCsr 142793 ext/sqlite3/libsqlite/sqlite3.c pCsr->iStart = 0; pCsr 142794 ext/sqlite3/libsqlite/sqlite3.c pCsr->iEnd = 0; pCsr 142795 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPos = 0; pCsr 142796 ext/sqlite3/libsqlite/sqlite3.c pCsr->iRowid = 0; pCsr 142803 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142805 ext/sqlite3/libsqlite/sqlite3.c fts3tokResetCursor(pCsr); pCsr 142806 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 142814 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142818 ext/sqlite3/libsqlite/sqlite3.c pCsr->iRowid++; pCsr 142819 ext/sqlite3/libsqlite/sqlite3.c rc = pTab->pMod->xNext(pCsr->pCsr, pCsr 142820 ext/sqlite3/libsqlite/sqlite3.c &pCsr->zToken, &pCsr->nToken, pCsr 142821 ext/sqlite3/libsqlite/sqlite3.c &pCsr->iStart, &pCsr->iEnd, &pCsr->iPos pCsr 142825 ext/sqlite3/libsqlite/sqlite3.c fts3tokResetCursor(pCsr); pCsr 142843 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142848 ext/sqlite3/libsqlite/sqlite3.c fts3tokResetCursor(pCsr); pCsr 142852 ext/sqlite3/libsqlite/sqlite3.c pCsr->zInput = sqlite3_malloc(nByte+1); pCsr 142853 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->zInput==0 ){ pCsr 142856 ext/sqlite3/libsqlite/sqlite3.c memcpy(pCsr->zInput, zByte, nByte); pCsr 142857 ext/sqlite3/libsqlite/sqlite3.c pCsr->zInput[nByte] = 0; pCsr 142858 ext/sqlite3/libsqlite/sqlite3.c rc = pTab->pMod->xOpen(pTab->pTok, pCsr->zInput, nByte, &pCsr->pCsr); pCsr 142860 ext/sqlite3/libsqlite/sqlite3.c pCsr->pCsr->pTokenizer = pTab->pTok; pCsr 142873 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142874 ext/sqlite3/libsqlite/sqlite3.c return (pCsr->zToken==0); pCsr 142885 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142890 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_text(pCtx, pCsr->zInput, -1, SQLITE_TRANSIENT); pCsr 142893 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_text(pCtx, pCsr->zToken, pCsr->nToken, SQLITE_TRANSIENT); pCsr 142896 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(pCtx, pCsr->iStart); pCsr 142899 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(pCtx, pCsr->iEnd); pCsr 142903 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(pCtx, pCsr->iPos); pCsr 142916 ext/sqlite3/libsqlite/sqlite3.c Fts3tokCursor *pCsr = (Fts3tokCursor *)pCursor; pCsr 142917 ext/sqlite3/libsqlite/sqlite3.c *pRowid = (sqlite3_int64)pCsr->iRowid; pCsr 143760 ext/sqlite3/libsqlite/sqlite3.c sqlite3_tokenizer_cursor *pCsr; pCsr 143774 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3OpenTokenizer(pTokenizer, iLangid, zText, -1, &pCsr); pCsr 143781 ext/sqlite3/libsqlite/sqlite3.c && SQLITE_OK==(rc = xNext(pCsr, &zToken, &nToken, &iStart, &iEnd, &iPos)) pCsr 143810 ext/sqlite3/libsqlite/sqlite3.c pModule->xClose(pCsr); pCsr 144488 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, pCsr 144492 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *p = (Fts3Table*)pCsr->base.pVtab; pCsr 145655 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, /* Cursor object */ pCsr 145660 ext/sqlite3/libsqlite/sqlite3.c int nSeg = pCsr->nSegment; pCsr 145668 ext/sqlite3/libsqlite/sqlite3.c for(i=0; pCsr->bRestart==0 && i<pCsr->nSegment; i++){ pCsr 145670 ext/sqlite3/libsqlite/sqlite3.c Fts3SegReader *pSeg = pCsr->apSegment[i]; pCsr 145680 ext/sqlite3/libsqlite/sqlite3.c fts3SegReaderSort(pCsr->apSegment, nSeg, nSeg, fts3SegReaderCmp); pCsr 145687 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, /* Cursor object */ pCsr 145690 ext/sqlite3/libsqlite/sqlite3.c pCsr->pFilter = pFilter; pCsr 145691 ext/sqlite3/libsqlite/sqlite3.c return fts3SegReaderStart(p, pCsr, pFilter->zTerm, pFilter->nTerm); pCsr 145696 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, /* Cursor object */ pCsr 145703 ext/sqlite3/libsqlite/sqlite3.c int nSegment = pCsr->nSegment; pCsr 145708 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->pFilter==0 ); pCsr 145712 ext/sqlite3/libsqlite/sqlite3.c rc = fts3SegReaderStart(p, pCsr, zTerm, nTerm); pCsr 145717 ext/sqlite3/libsqlite/sqlite3.c Fts3SegReader *pSeg = pCsr->apSegment[i]; pCsr 145722 ext/sqlite3/libsqlite/sqlite3.c pCsr->nAdvance = i; pCsr 145725 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pCsr->nAdvance; i++){ pCsr 145726 ext/sqlite3/libsqlite/sqlite3.c rc = fts3SegReaderFirstDocid(p, pCsr->apSegment[i]); pCsr 145729 ext/sqlite3/libsqlite/sqlite3.c fts3SegReaderSort(pCsr->apSegment, i, i, xCmp); pCsr 145732 ext/sqlite3/libsqlite/sqlite3.c pCsr->iColFilter = iCol; pCsr 145749 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr){ pCsr 145752 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->zTerm==0 ); pCsr 145753 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->nTerm==0 ); pCsr 145754 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->aDoclist==0 ); pCsr 145755 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->nDoclist==0 ); pCsr 145757 ext/sqlite3/libsqlite/sqlite3.c pCsr->nAdvance = 0; pCsr 145758 ext/sqlite3/libsqlite/sqlite3.c pCsr->bRestart = 1; pCsr 145759 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pCsr->nSegment; i++){ pCsr 145760 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment[i]->pOffsetList = 0; pCsr 145761 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment[i]->nOffsetList = 0; pCsr 145762 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment[i]->iDocid = 0; pCsr 145771 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor object */ pCsr 145775 ext/sqlite3/libsqlite/sqlite3.c int isIgnoreEmpty = (pCsr->pFilter->flags & FTS3_SEGMENT_IGNORE_EMPTY); pCsr 145776 ext/sqlite3/libsqlite/sqlite3.c int isRequirePos = (pCsr->pFilter->flags & FTS3_SEGMENT_REQUIRE_POS); pCsr 145777 ext/sqlite3/libsqlite/sqlite3.c int isColFilter = (pCsr->pFilter->flags & FTS3_SEGMENT_COLUMN_FILTER); pCsr 145778 ext/sqlite3/libsqlite/sqlite3.c int isPrefix = (pCsr->pFilter->flags & FTS3_SEGMENT_PREFIX); pCsr 145779 ext/sqlite3/libsqlite/sqlite3.c int isScan = (pCsr->pFilter->flags & FTS3_SEGMENT_SCAN); pCsr 145780 ext/sqlite3/libsqlite/sqlite3.c int isFirst = (pCsr->pFilter->flags & FTS3_SEGMENT_FIRST); pCsr 145782 ext/sqlite3/libsqlite/sqlite3.c Fts3SegReader **apSegment = pCsr->apSegment; pCsr 145783 ext/sqlite3/libsqlite/sqlite3.c int nSegment = pCsr->nSegment; pCsr 145784 ext/sqlite3/libsqlite/sqlite3.c Fts3SegFilter *pFilter = pCsr->pFilter; pCsr 145789 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->nSegment==0 ) return SQLITE_OK; pCsr 145798 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pCsr->nAdvance; i++){ pCsr 145807 ext/sqlite3/libsqlite/sqlite3.c fts3SegReaderSort(apSegment, nSegment, pCsr->nAdvance, fts3SegReaderCmp); pCsr 145808 ext/sqlite3/libsqlite/sqlite3.c pCsr->nAdvance = 0; pCsr 145814 ext/sqlite3/libsqlite/sqlite3.c pCsr->nTerm = apSegment[0]->nTerm; pCsr 145815 ext/sqlite3/libsqlite/sqlite3.c pCsr->zTerm = apSegment[0]->zTerm; pCsr 145825 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->nTerm<pFilter->nTerm pCsr 145826 ext/sqlite3/libsqlite/sqlite3.c || (!isPrefix && pCsr->nTerm>pFilter->nTerm) pCsr 145827 ext/sqlite3/libsqlite/sqlite3.c || memcmp(pCsr->zTerm, pFilter->zTerm, pFilter->nTerm) pCsr 145836 ext/sqlite3/libsqlite/sqlite3.c && apSegment[nMerge]->nTerm==pCsr->nTerm pCsr 145837 ext/sqlite3/libsqlite/sqlite3.c && 0==memcmp(pCsr->zTerm, apSegment[nMerge]->zTerm, pCsr->nTerm) pCsr 145848 ext/sqlite3/libsqlite/sqlite3.c pCsr->nDoclist = apSegment[0]->nDoclist; pCsr 145850 ext/sqlite3/libsqlite/sqlite3.c rc = fts3MsrBufferData(pCsr, apSegment[0]->aDoclist, pCsr->nDoclist); pCsr 145851 ext/sqlite3/libsqlite/sqlite3.c pCsr->aDoclist = pCsr->aBuffer; pCsr 145853 ext/sqlite3/libsqlite/sqlite3.c pCsr->aDoclist = apSegment[0]->aDoclist; pCsr 145902 ext/sqlite3/libsqlite/sqlite3.c if( nDoclist+nByte>pCsr->nBuffer ){ pCsr 145904 ext/sqlite3/libsqlite/sqlite3.c pCsr->nBuffer = (nDoclist+nByte)*2; pCsr 145905 ext/sqlite3/libsqlite/sqlite3.c aNew = sqlite3_realloc(pCsr->aBuffer, pCsr->nBuffer); pCsr 145909 ext/sqlite3/libsqlite/sqlite3.c pCsr->aBuffer = aNew; pCsr 145913 ext/sqlite3/libsqlite/sqlite3.c char *a = &pCsr->aBuffer[nDoclist]; pCsr 145922 ext/sqlite3/libsqlite/sqlite3.c nDoclist += sqlite3Fts3PutVarint(&pCsr->aBuffer[nDoclist], iDelta); pCsr 145925 ext/sqlite3/libsqlite/sqlite3.c memcpy(&pCsr->aBuffer[nDoclist], pList, nList); pCsr 145927 ext/sqlite3/libsqlite/sqlite3.c pCsr->aBuffer[nDoclist++] = '\0'; pCsr 145935 ext/sqlite3/libsqlite/sqlite3.c pCsr->aDoclist = pCsr->aBuffer; pCsr 145936 ext/sqlite3/libsqlite/sqlite3.c pCsr->nDoclist = nDoclist; pCsr 145940 ext/sqlite3/libsqlite/sqlite3.c pCsr->nAdvance = nMerge; pCsr 145948 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor object */ pCsr 145950 ext/sqlite3/libsqlite/sqlite3.c if( pCsr ){ pCsr 145952 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pCsr->nSegment; i++){ pCsr 145953 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3SegReaderFree(pCsr->apSegment[i]); pCsr 145955 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->apSegment); pCsr 145956 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aBuffer); pCsr 145958 ext/sqlite3/libsqlite/sqlite3.c pCsr->nSegment = 0; pCsr 145959 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment = 0; pCsr 145960 ext/sqlite3/libsqlite/sqlite3.c pCsr->aBuffer = 0; pCsr 146523 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor object to populate */ pCsr 146530 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(*pCsr)); pCsr 146532 ext/sqlite3/libsqlite/sqlite3.c pCsr->apSegment = (Fts3SegReader **)sqlite3_malloc(nByte); pCsr 146534 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->apSegment==0 ){ pCsr 146537 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr->apSegment, 0, nByte); pCsr 146544 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->nSegment==0 ); pCsr 146552 ext/sqlite3/libsqlite/sqlite3.c &pCsr->apSegment[i] pCsr 146554 ext/sqlite3/libsqlite/sqlite3.c pCsr->nSegment++; pCsr 146887 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr /* Cursor containing term and doclist */ pCsr 146889 ext/sqlite3/libsqlite/sqlite3.c const char *zTerm = pCsr->zTerm; pCsr 146890 ext/sqlite3/libsqlite/sqlite3.c int nTerm = pCsr->nTerm; pCsr 146891 ext/sqlite3/libsqlite/sqlite3.c const char *aDoclist = pCsr->aDoclist; pCsr 146892 ext/sqlite3/libsqlite/sqlite3.c int nDoclist = pCsr->nDoclist; pCsr 147297 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, /* Cursor that data will be read from */ pCsr 147310 ext/sqlite3/libsqlite/sqlite3.c sqlite3_bind_int64(pLeafEst, 2, pCsr->nSegment); pCsr 147600 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr, /* Chomp all segments opened by this cursor */ pCsr 147607 ext/sqlite3/libsqlite/sqlite3.c for(i=pCsr->nSegment-1; i>=0 && rc==SQLITE_OK; i--){ pCsr 147613 ext/sqlite3/libsqlite/sqlite3.c for(j=0; ALWAYS(j<pCsr->nSegment); j++){ pCsr 147614 ext/sqlite3/libsqlite/sqlite3.c pSeg = pCsr->apSegment[j]; pCsr 147617 ext/sqlite3/libsqlite/sqlite3.c assert( j<pCsr->nSegment && pSeg->iIdx==i ); pCsr 147637 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK && nRem!=pCsr->nSegment ){ pCsr 147757 ext/sqlite3/libsqlite/sqlite3.c Fts3MultiSegReader *pCsr; /* Cursor used to read input data */ pCsr 147766 ext/sqlite3/libsqlite/sqlite3.c const int nAlloc = sizeof(*pCsr) + sizeof(*pFilter) + sizeof(*pWriter); pCsr 147770 ext/sqlite3/libsqlite/sqlite3.c pCsr = (Fts3MultiSegReader *)&pFilter[1]; pCsr 147845 ext/sqlite3/libsqlite/sqlite3.c rc = fts3IncrmergeCsr(p, iAbsLevel, nSeg, pCsr); pCsr 147847 ext/sqlite3/libsqlite/sqlite3.c if( SQLITE_OK==rc && pCsr->nSegment==nSeg pCsr 147848 ext/sqlite3/libsqlite/sqlite3.c && SQLITE_OK==(rc = sqlite3Fts3SegReaderStart(p, pCsr, pFilter)) pCsr 147849 ext/sqlite3/libsqlite/sqlite3.c && SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, pCsr)) pCsr 147852 ext/sqlite3/libsqlite/sqlite3.c const char *zKey = pCsr->zTerm; pCsr 147853 ext/sqlite3/libsqlite/sqlite3.c int nKey = pCsr->nTerm; pCsr 147856 ext/sqlite3/libsqlite/sqlite3.c rc = fts3IncrmergeWriter(p, iAbsLevel, iIdx, pCsr, pWriter); pCsr 147862 ext/sqlite3/libsqlite/sqlite3.c rc = fts3IncrmergeAppend(p, pWriter, pCsr); pCsr 147863 ext/sqlite3/libsqlite/sqlite3.c if( rc==SQLITE_OK ) rc = sqlite3Fts3SegReaderStep(p, pCsr); pCsr 147870 ext/sqlite3/libsqlite/sqlite3.c rc = fts3IncrmergeChomp(p, iAbsLevel, pCsr, &nSeg); pCsr 147887 ext/sqlite3/libsqlite/sqlite3.c sqlite3Fts3SegReaderFinish(pCsr); pCsr 148050 ext/sqlite3/libsqlite/sqlite3.c char *pCsr = csr.aDoclist; pCsr 148051 ext/sqlite3/libsqlite/sqlite3.c char *pEnd = &pCsr[csr.nDoclist]; pCsr 148057 ext/sqlite3/libsqlite/sqlite3.c pCsr += sqlite3Fts3GetVarint(pCsr, &iDocid); pCsr 148058 ext/sqlite3/libsqlite/sqlite3.c while( pCsr<pEnd ){ pCsr 148060 ext/sqlite3/libsqlite/sqlite3.c pCsr += sqlite3Fts3GetVarint(pCsr, &iVal); pCsr 148061 ext/sqlite3/libsqlite/sqlite3.c if( pCsr<pEnd ){ pCsr 148066 ext/sqlite3/libsqlite/sqlite3.c pCsr += sqlite3Fts3GetVarint(pCsr, &iCol); pCsr 148068 ext/sqlite3/libsqlite/sqlite3.c pCsr += sqlite3Fts3GetVarint(pCsr, &iVal); pCsr 148269 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3Fts3FreeDeferredDoclists(Fts3Cursor *pCsr){ pCsr 148271 ext/sqlite3/libsqlite/sqlite3.c for(pDef=pCsr->pDeferred; pDef; pDef=pDef->pNext){ pCsr 148281 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3Fts3FreeDeferredTokens(Fts3Cursor *pCsr){ pCsr 148284 ext/sqlite3/libsqlite/sqlite3.c for(pDef=pCsr->pDeferred; pDef; pDef=pNext){ pCsr 148289 ext/sqlite3/libsqlite/sqlite3.c pCsr->pDeferred = 0; pCsr 148300 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3Fts3CacheDeferredDoclists(Fts3Cursor *pCsr){ pCsr 148302 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pDeferred ){ pCsr 148307 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *p = (Fts3Table *)pCsr->base.pVtab; pCsr 148311 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->isRequireSeek==0 ); pCsr 148312 ext/sqlite3/libsqlite/sqlite3.c iDocid = sqlite3_column_int64(pCsr->pStmt, 0); pCsr 148316 ext/sqlite3/libsqlite/sqlite3.c const char *zText = (const char *)sqlite3_column_text(pCsr->pStmt, i+1); pCsr 148319 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3OpenTokenizer(pT, pCsr->iLangid, zText, -1, &pTC); pCsr 148327 ext/sqlite3/libsqlite/sqlite3.c for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){ pCsr 148343 ext/sqlite3/libsqlite/sqlite3.c for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){ pCsr 148384 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Fts3 table cursor */ pCsr 148395 ext/sqlite3/libsqlite/sqlite3.c pDeferred->pNext = pCsr->pDeferred; pCsr 148397 ext/sqlite3/libsqlite/sqlite3.c pCsr->pDeferred = pDeferred; pCsr 148669 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; /* FTS3 Cursor */ pCsr 148683 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; /* Cursor snippet is being generated from */ pCsr 148834 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Fts3 cursor for current query */ pCsr 148840 ext/sqlite3/libsqlite/sqlite3.c sCtx.pCsr = pCsr; pCsr 148841 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprIterate(pCsr->pExpr, fts3ExprLoadDoclistsCb, (void *)&sCtx); pCsr 148949 ext/sqlite3/libsqlite/sqlite3.c char *pCsr = pPhrase->pTail; pCsr 148968 ext/sqlite3/libsqlite/sqlite3.c if( 0==(*pCsr & 0x0FE) ) break; pCsr 148969 ext/sqlite3/libsqlite/sqlite3.c fts3GetDeltaPosition(&pCsr, &iCsr); pCsr 148988 ext/sqlite3/libsqlite/sqlite3.c char *pCsr; pCsr 148992 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol, &pCsr); pCsr 148993 ext/sqlite3/libsqlite/sqlite3.c assert( rc==SQLITE_OK || pCsr==0 ); pCsr 148994 ext/sqlite3/libsqlite/sqlite3.c if( pCsr ){ pCsr 148996 ext/sqlite3/libsqlite/sqlite3.c pPhrase->pList = pCsr; pCsr 148997 ext/sqlite3/libsqlite/sqlite3.c fts3GetDeltaPosition(&pCsr, &iFirst); pCsr 148999 ext/sqlite3/libsqlite/sqlite3.c pPhrase->pHead = pCsr; pCsr 149000 ext/sqlite3/libsqlite/sqlite3.c pPhrase->pTail = pCsr; pCsr 149029 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Cursor to create snippet for */ pCsr 149048 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprLoadDoclists(pCsr, &nList, 0); pCsr 149066 ext/sqlite3/libsqlite/sqlite3.c sIter.pCsr = pCsr; pCsr 149071 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprIterate(pCsr->pExpr, fts3SnippetFindPositions, (void *)&sIter); pCsr 149230 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS3 Cursor */ pCsr 149240 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 149253 ext/sqlite3/libsqlite/sqlite3.c zDoc = (const char *)sqlite3_column_text(pCsr->pStmt, iCol); pCsr 149255 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3_column_type(pCsr->pStmt, iCol)!=SQLITE_NULL ){ pCsr 149260 ext/sqlite3/libsqlite/sqlite3.c nDoc = sqlite3_column_bytes(pCsr->pStmt, iCol); pCsr 149264 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3OpenTokenizer(pTab->pTokenizer, pCsr->iLangid, zDoc,nDoc,&pC); pCsr 149303 ext/sqlite3/libsqlite/sqlite3.c pTab, pCsr->iLangid, nSnippet, &zDoc[iBegin], n, &iPos, &hlmask pCsr 149426 ext/sqlite3/libsqlite/sqlite3.c char *pCsr; pCsr 149427 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3EvalPhrasePoslist(p->pCursor, pExpr, i, &pCsr); pCsr 149428 ext/sqlite3/libsqlite/sqlite3.c if( pCsr ){ pCsr 149429 ext/sqlite3/libsqlite/sqlite3.c p->aMatchinfo[iStart+i*3] = fts3ColumnlistCount(&pCsr); pCsr 149621 ext/sqlite3/libsqlite/sqlite3.c static int fts3MatchinfoLcs(Fts3Cursor *pCsr, MatchInfo *pInfo){ pCsr 149630 ext/sqlite3/libsqlite/sqlite3.c aIter = sqlite3_malloc(sizeof(LcsIterator) * pCsr->nPhrase); pCsr 149632 ext/sqlite3/libsqlite/sqlite3.c memset(aIter, 0, sizeof(LcsIterator) * pCsr->nPhrase); pCsr 149633 ext/sqlite3/libsqlite/sqlite3.c (void)fts3ExprIterate(pCsr->pExpr, fts3MatchinfoLcsCb, (void*)aIter); pCsr 149648 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3EvalPhrasePoslist(pCsr, pIt->pExpr, iCol, &pIt->pRead); pCsr 149706 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS3 cursor object */ pCsr 149713 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 149756 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3SelectDocsize(pTab, pCsr->iPrevId, &pSelectDocsize); pCsr 149771 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprLoadDoclists(pCsr, 0, 0); pCsr 149773 ext/sqlite3/libsqlite/sqlite3.c rc = fts3MatchinfoLcs(pCsr, pInfo); pCsr 149778 ext/sqlite3/libsqlite/sqlite3.c (void)fts3ExprIterate(pCsr->pExpr, fts3ExprLHitsCb, (void*)pInfo); pCsr 149784 ext/sqlite3/libsqlite/sqlite3.c pExpr = pCsr->pExpr; pCsr 149785 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprLoadDoclists(pCsr, 0, 0); pCsr 149788 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->pDeferred ){ pCsr 149813 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS3 Cursor object */ pCsr 149817 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 149822 ext/sqlite3/libsqlite/sqlite3.c sInfo.pCursor = pCsr; pCsr 149828 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->zMatchinfo && strcmp(pCsr->zMatchinfo, zArg) ){ pCsr 149829 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->aMatchinfo ); pCsr 149830 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aMatchinfo); pCsr 149831 ext/sqlite3/libsqlite/sqlite3.c pCsr->zMatchinfo = 0; pCsr 149832 ext/sqlite3/libsqlite/sqlite3.c pCsr->aMatchinfo = 0; pCsr 149840 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->aMatchinfo==0 ){ pCsr 149846 ext/sqlite3/libsqlite/sqlite3.c pCsr->nPhrase = fts3ExprPhraseCount(pCsr->pExpr); pCsr 149847 ext/sqlite3/libsqlite/sqlite3.c sInfo.nPhrase = pCsr->nPhrase; pCsr 149856 ext/sqlite3/libsqlite/sqlite3.c pCsr->aMatchinfo = (u32 *)sqlite3_malloc(sizeof(u32)*nMatchinfo + nArg + 1); pCsr 149857 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr->aMatchinfo ) return SQLITE_NOMEM; pCsr 149859 ext/sqlite3/libsqlite/sqlite3.c pCsr->zMatchinfo = (char *)&pCsr->aMatchinfo[nMatchinfo]; pCsr 149860 ext/sqlite3/libsqlite/sqlite3.c pCsr->nMatchinfo = nMatchinfo; pCsr 149861 ext/sqlite3/libsqlite/sqlite3.c memcpy(pCsr->zMatchinfo, zArg, nArg+1); pCsr 149862 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr->aMatchinfo, 0, sizeof(u32)*nMatchinfo); pCsr 149863 ext/sqlite3/libsqlite/sqlite3.c pCsr->isMatchinfoNeeded = 1; pCsr 149867 ext/sqlite3/libsqlite/sqlite3.c sInfo.aMatchinfo = pCsr->aMatchinfo; pCsr 149868 ext/sqlite3/libsqlite/sqlite3.c sInfo.nPhrase = pCsr->nPhrase; pCsr 149869 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->isMatchinfoNeeded ){ pCsr 149870 ext/sqlite3/libsqlite/sqlite3.c rc = fts3MatchinfoValues(pCsr, bGlobal, &sInfo, zArg); pCsr 149871 ext/sqlite3/libsqlite/sqlite3.c pCsr->isMatchinfoNeeded = 0; pCsr 149882 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* Cursor object */ pCsr 149889 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 149906 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr->pExpr ){ pCsr 149940 ext/sqlite3/libsqlite/sqlite3.c rc = fts3BestSnippet(nFToken, pCsr, iRead, mCovered, &mSeen, &sF, &iS); pCsr 149963 ext/sqlite3/libsqlite/sqlite3.c rc = fts3SnippetText(pCsr, &aSnippet[i], pCsr 149989 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr; pCsr 150008 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol, &pList); pCsr 150030 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr /* Cursor object */ pCsr 150032 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 150040 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr->pExpr ){ pCsr 150046 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->isRequireSeek==0 ); pCsr 150049 ext/sqlite3/libsqlite/sqlite3.c rc = fts3ExprLoadDoclists(pCsr, 0, &nToken); pCsr 150058 ext/sqlite3/libsqlite/sqlite3.c sCtx.iDocid = pCsr->iPrevId; pCsr 150059 ext/sqlite3/libsqlite/sqlite3.c sCtx.pCsr = pCsr; pCsr 150080 ext/sqlite3/libsqlite/sqlite3.c (void)fts3ExprIterate(pCsr->pExpr, fts3ExprTermOffsetInit, (void *)&sCtx); pCsr 150088 ext/sqlite3/libsqlite/sqlite3.c zDoc = (const char *)sqlite3_column_text(pCsr->pStmt, iCol+1); pCsr 150089 ext/sqlite3/libsqlite/sqlite3.c nDoc = sqlite3_column_bytes(pCsr->pStmt, iCol+1); pCsr 150091 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3_column_type(pCsr->pStmt, iCol+1)==SQLITE_NULL ){ pCsr 150099 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3Fts3OpenTokenizer(pTab->pTokenizer, pCsr->iLangid, pCsr 150168 ext/sqlite3/libsqlite/sqlite3.c Fts3Cursor *pCsr, /* FTS3 table cursor */ pCsr 150171 ext/sqlite3/libsqlite/sqlite3.c Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; pCsr 150190 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr->pExpr ){ pCsr 150196 ext/sqlite3/libsqlite/sqlite3.c rc = fts3GetMatchinfo(pCsr, zFormat); pCsr 150202 ext/sqlite3/libsqlite/sqlite3.c int n = pCsr->nMatchinfo * sizeof(u32); pCsr 150203 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_blob(pContext, pCsr->aMatchinfo, n, SQLITE_TRANSIENT); pCsr 150482 ext/sqlite3/libsqlite/sqlite3.c unicode_cursor *pCsr; pCsr 150484 ext/sqlite3/libsqlite/sqlite3.c pCsr = (unicode_cursor *)sqlite3_malloc(sizeof(unicode_cursor)); pCsr 150485 ext/sqlite3/libsqlite/sqlite3.c if( pCsr==0 ){ pCsr 150488 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(unicode_cursor)); pCsr 150490 ext/sqlite3/libsqlite/sqlite3.c pCsr->aInput = (const unsigned char *)aInput; pCsr 150492 ext/sqlite3/libsqlite/sqlite3.c pCsr->nInput = 0; pCsr 150494 ext/sqlite3/libsqlite/sqlite3.c pCsr->nInput = (int)strlen(aInput); pCsr 150496 ext/sqlite3/libsqlite/sqlite3.c pCsr->nInput = nInput; pCsr 150499 ext/sqlite3/libsqlite/sqlite3.c *pp = &pCsr->base; pCsr 150509 ext/sqlite3/libsqlite/sqlite3.c unicode_cursor *pCsr = (unicode_cursor *) pCursor; pCsr 150510 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zToken); pCsr 150511 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 150527 ext/sqlite3/libsqlite/sqlite3.c unicode_cursor *pCsr = (unicode_cursor *)pC; pCsr 150528 ext/sqlite3/libsqlite/sqlite3.c unicode_tokenizer *p = ((unicode_tokenizer *)pCsr->base.pTokenizer); pCsr 150531 ext/sqlite3/libsqlite/sqlite3.c const unsigned char *z = &pCsr->aInput[pCsr->iOff]; pCsr 150534 ext/sqlite3/libsqlite/sqlite3.c const unsigned char *zTerm = &pCsr->aInput[pCsr->nInput]; pCsr 150546 ext/sqlite3/libsqlite/sqlite3.c zOut = pCsr->zToken; pCsr 150551 ext/sqlite3/libsqlite/sqlite3.c if( (zOut-pCsr->zToken)>=(pCsr->nAlloc-4) ){ pCsr 150552 ext/sqlite3/libsqlite/sqlite3.c char *zNew = sqlite3_realloc(pCsr->zToken, pCsr->nAlloc+64); pCsr 150554 ext/sqlite3/libsqlite/sqlite3.c zOut = &zNew[zOut - pCsr->zToken]; pCsr 150555 ext/sqlite3/libsqlite/sqlite3.c pCsr->zToken = zNew; pCsr 150556 ext/sqlite3/libsqlite/sqlite3.c pCsr->nAlloc += 64; pCsr 150574 ext/sqlite3/libsqlite/sqlite3.c pCsr->iOff = (int)(z - pCsr->aInput); pCsr 150575 ext/sqlite3/libsqlite/sqlite3.c *paToken = pCsr->zToken; pCsr 150576 ext/sqlite3/libsqlite/sqlite3.c *pnToken = (int)(zOut - pCsr->zToken); pCsr 150577 ext/sqlite3/libsqlite/sqlite3.c *piStart = (int)(zStart - pCsr->aInput); pCsr 150578 ext/sqlite3/libsqlite/sqlite3.c *piEnd = (int)(zEnd - pCsr->aInput); pCsr 150579 ext/sqlite3/libsqlite/sqlite3.c *piPos = pCsr->iToken++; pCsr 151818 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr; pCsr 151820 ext/sqlite3/libsqlite/sqlite3.c pCsr = (RtreeCursor *)sqlite3_malloc(sizeof(RtreeCursor)); pCsr 151821 ext/sqlite3/libsqlite/sqlite3.c if( pCsr ){ pCsr 151822 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(RtreeCursor)); pCsr 151823 ext/sqlite3/libsqlite/sqlite3.c pCsr->base.pVtab = pVTab; pCsr 151826 ext/sqlite3/libsqlite/sqlite3.c *ppCursor = (sqlite3_vtab_cursor *)pCsr; pCsr 151835 ext/sqlite3/libsqlite/sqlite3.c static void freeCursorConstraints(RtreeCursor *pCsr){ pCsr 151836 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->aConstraint ){ pCsr 151838 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pCsr->nConstraint; i++){ pCsr 151839 ext/sqlite3/libsqlite/sqlite3.c sqlite3_rtree_query_info *pInfo = pCsr->aConstraint[i].pInfo; pCsr 151845 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aConstraint); pCsr 151846 ext/sqlite3/libsqlite/sqlite3.c pCsr->aConstraint = 0; pCsr 151856 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)cur; pCsr 151857 ext/sqlite3/libsqlite/sqlite3.c freeCursorConstraints(pCsr); pCsr 151858 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aPoint); pCsr 151859 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; ii<RTREE_CACHE_SZ; ii++) nodeRelease(pRtree, pCsr->aNode[ii]); pCsr 151860 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 151871 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)cur; pCsr 151872 ext/sqlite3/libsqlite/sqlite3.c return pCsr->atEOF; pCsr 152356 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; pCsr 152360 ext/sqlite3/libsqlite/sqlite3.c RTREE_QUEUE_TRACE(pCsr, "POP-Nx:"); pCsr 152361 ext/sqlite3/libsqlite/sqlite3.c rtreeSearchPointPop(pCsr); pCsr 152362 ext/sqlite3/libsqlite/sqlite3.c rc = rtreeStepToLeaf(pCsr); pCsr 152370 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; pCsr 152371 ext/sqlite3/libsqlite/sqlite3.c RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); pCsr 152373 ext/sqlite3/libsqlite/sqlite3.c RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); pCsr 152375 ext/sqlite3/libsqlite/sqlite3.c *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); pCsr 152385 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)cur; pCsr 152386 ext/sqlite3/libsqlite/sqlite3.c RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); pCsr 152389 ext/sqlite3/libsqlite/sqlite3.c RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); pCsr 152496 ext/sqlite3/libsqlite/sqlite3.c RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; pCsr 152505 ext/sqlite3/libsqlite/sqlite3.c freeCursorConstraints(pCsr); pCsr 152506 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->aPoint); pCsr 152507 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(RtreeCursor)); pCsr 152508 ext/sqlite3/libsqlite/sqlite3.c pCsr->base.pVtab = (sqlite3_vtab*)pRtree; pCsr 152510 ext/sqlite3/libsqlite/sqlite3.c pCsr->iStrategy = idxNum; pCsr 152519 ext/sqlite3/libsqlite/sqlite3.c p = rtreeSearchPointNew(pCsr, RTREE_ZERO, 0); pCsr 152521 ext/sqlite3/libsqlite/sqlite3.c pCsr->aNode[0] = pLeaf; pCsr 152526 ext/sqlite3/libsqlite/sqlite3.c RTREE_QUEUE_TRACE(pCsr, "PUSH-F1:"); pCsr 152528 ext/sqlite3/libsqlite/sqlite3.c pCsr->atEOF = 1; pCsr 152536 ext/sqlite3/libsqlite/sqlite3.c pCsr->aConstraint = sqlite3_malloc(sizeof(RtreeConstraint)*argc); pCsr 152537 ext/sqlite3/libsqlite/sqlite3.c pCsr->nConstraint = argc; pCsr 152538 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr->aConstraint ){ pCsr 152541 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr->aConstraint, 0, sizeof(RtreeConstraint)*argc); pCsr 152542 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr->anQueue, 0, sizeof(u32)*(pRtree->iDepth + 1)); pCsr 152546 ext/sqlite3/libsqlite/sqlite3.c RtreeConstraint *p = &pCsr->aConstraint[ii]; pCsr 152559 ext/sqlite3/libsqlite/sqlite3.c p->pInfo->anQueue = pCsr->anQueue; pCsr 152573 ext/sqlite3/libsqlite/sqlite3.c pNew = rtreeSearchPointNew(pCsr, RTREE_ZERO, pRtree->iDepth+1); pCsr 152578 ext/sqlite3/libsqlite/sqlite3.c assert( pCsr->bPoint==1 ); pCsr 152579 ext/sqlite3/libsqlite/sqlite3.c pCsr->aNode[0] = pRoot; pCsr 152581 ext/sqlite3/libsqlite/sqlite3.c RTREE_QUEUE_TRACE(pCsr, "PUSH-Fm:"); pCsr 152582 ext/sqlite3/libsqlite/sqlite3.c rc = rtreeStepToLeaf(pCsr); pCsr 155053 ext/sqlite3/libsqlite/sqlite3.c IcuCursor *pCsr; pCsr 155072 ext/sqlite3/libsqlite/sqlite3.c pCsr = (IcuCursor *)sqlite3_malloc( pCsr 155077 ext/sqlite3/libsqlite/sqlite3.c if( !pCsr ){ pCsr 155080 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(IcuCursor)); pCsr 155081 ext/sqlite3/libsqlite/sqlite3.c pCsr->aChar = (UChar *)&pCsr[1]; pCsr 155082 ext/sqlite3/libsqlite/sqlite3.c pCsr->aOffset = (int *)&pCsr->aChar[(nChar+3)&~3]; pCsr 155084 ext/sqlite3/libsqlite/sqlite3.c pCsr->aOffset[iOut] = iInput; pCsr 155089 ext/sqlite3/libsqlite/sqlite3.c U16_APPEND(pCsr->aChar, iOut, nChar, c, isError); pCsr 155091 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 155094 ext/sqlite3/libsqlite/sqlite3.c pCsr->aOffset[iOut] = iInput; pCsr 155103 ext/sqlite3/libsqlite/sqlite3.c pCsr->pIter = ubrk_open(UBRK_WORD, p->zLocale, pCsr->aChar, iOut, &status); pCsr 155105 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 155108 ext/sqlite3/libsqlite/sqlite3.c pCsr->nChar = iOut; pCsr 155110 ext/sqlite3/libsqlite/sqlite3.c ubrk_first(pCsr->pIter); pCsr 155111 ext/sqlite3/libsqlite/sqlite3.c *ppCursor = (sqlite3_tokenizer_cursor *)pCsr; pCsr 155119 ext/sqlite3/libsqlite/sqlite3.c IcuCursor *pCsr = (IcuCursor *)pCursor; pCsr 155120 ext/sqlite3/libsqlite/sqlite3.c ubrk_close(pCsr->pIter); pCsr 155121 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zBuffer); pCsr 155122 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 155137 ext/sqlite3/libsqlite/sqlite3.c IcuCursor *pCsr = (IcuCursor *)pCursor; pCsr 155146 ext/sqlite3/libsqlite/sqlite3.c iStart = ubrk_current(pCsr->pIter); pCsr 155147 ext/sqlite3/libsqlite/sqlite3.c iEnd = ubrk_next(pCsr->pIter); pCsr 155154 ext/sqlite3/libsqlite/sqlite3.c U16_NEXT(pCsr->aChar, iWhite, pCsr->nChar, c); pCsr 155167 ext/sqlite3/libsqlite/sqlite3.c char *zNew = sqlite3_realloc(pCsr->zBuffer, nByte); pCsr 155171 ext/sqlite3/libsqlite/sqlite3.c pCsr->zBuffer = zNew; pCsr 155172 ext/sqlite3/libsqlite/sqlite3.c pCsr->nBuffer = nByte; pCsr 155176 ext/sqlite3/libsqlite/sqlite3.c pCsr->zBuffer, pCsr->nBuffer, &nByte, /* Output vars */ pCsr 155177 ext/sqlite3/libsqlite/sqlite3.c &pCsr->aChar[iStart], iEnd-iStart, /* Input vars */ pCsr 155180 ext/sqlite3/libsqlite/sqlite3.c } while( nByte>pCsr->nBuffer ); pCsr 155182 ext/sqlite3/libsqlite/sqlite3.c *ppToken = pCsr->zBuffer; pCsr 155184 ext/sqlite3/libsqlite/sqlite3.c *piStartOffset = pCsr->aOffset[iStart]; pCsr 155185 ext/sqlite3/libsqlite/sqlite3.c *piEndOffset = pCsr->aOffset[iEnd]; pCsr 155186 ext/sqlite3/libsqlite/sqlite3.c *piPosition = pCsr->iToken++; pCsr 155428 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr; pCsr 155431 ext/sqlite3/libsqlite/sqlite3.c pCsr = (StatCursor *)sqlite3_malloc64(sizeof(StatCursor)); pCsr 155432 ext/sqlite3/libsqlite/sqlite3.c if( pCsr==0 ){ pCsr 155436 ext/sqlite3/libsqlite/sqlite3.c memset(pCsr, 0, sizeof(StatCursor)); pCsr 155437 ext/sqlite3/libsqlite/sqlite3.c pCsr->base.pVtab = pVTab; pCsr 155448 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); pCsr 155452 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 155453 ext/sqlite3/libsqlite/sqlite3.c pCsr = 0; pCsr 155457 ext/sqlite3/libsqlite/sqlite3.c *ppCursor = (sqlite3_vtab_cursor *)pCsr; pCsr 155474 ext/sqlite3/libsqlite/sqlite3.c static void statResetCsr(StatCursor *pCsr){ pCsr 155476 ext/sqlite3/libsqlite/sqlite3.c sqlite3_reset(pCsr->pStmt); pCsr 155477 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<ArraySize(pCsr->aPage); i++){ pCsr 155478 ext/sqlite3/libsqlite/sqlite3.c statClearPage(&pCsr->aPage[i]); pCsr 155480 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPage = 0; pCsr 155481 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zPath); pCsr 155482 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPath = 0; pCsr 155489 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155490 ext/sqlite3/libsqlite/sqlite3.c statResetCsr(pCsr); pCsr 155491 ext/sqlite3/libsqlite/sqlite3.c sqlite3_finalize(pCsr->pStmt); pCsr 155492 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr); pCsr 155614 ext/sqlite3/libsqlite/sqlite3.c static void statSizeAndOffset(StatCursor *pCsr){ pCsr 155615 ext/sqlite3/libsqlite/sqlite3.c StatTable *pTab = (StatTable *)((sqlite3_vtab_cursor *)pCsr)->pVtab; pCsr 155622 ext/sqlite3/libsqlite/sqlite3.c pCsr->szPage = sqlite3BtreeGetPageSize(pBt); pCsr 155623 ext/sqlite3/libsqlite/sqlite3.c pCsr->iOffset = (i64)pCsr->szPage * (pCsr->iPageno - 1); pCsr 155629 ext/sqlite3/libsqlite/sqlite3.c x[0] = pCsr->iPageno; pCsr 155631 ext/sqlite3/libsqlite/sqlite3.c pCsr->iOffset = x[0]; pCsr 155632 ext/sqlite3/libsqlite/sqlite3.c pCsr->szPage = (int)x[1]; pCsr 155643 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155648 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pCsr->zPath); pCsr 155649 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPath = 0; pCsr 155652 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->aPage[0].pPg==0 ){ pCsr 155653 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3_step(pCsr->pStmt); pCsr 155656 ext/sqlite3/libsqlite/sqlite3.c u32 iRoot = (u32)sqlite3_column_int64(pCsr->pStmt, 1); pCsr 155659 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 155660 ext/sqlite3/libsqlite/sqlite3.c return sqlite3_reset(pCsr->pStmt); pCsr 155662 ext/sqlite3/libsqlite/sqlite3.c rc = sqlite3PagerGet(pPager, iRoot, &pCsr->aPage[0].pPg); pCsr 155663 ext/sqlite3/libsqlite/sqlite3.c pCsr->aPage[0].iPgno = iRoot; pCsr 155664 ext/sqlite3/libsqlite/sqlite3.c pCsr->aPage[0].iCell = 0; pCsr 155665 ext/sqlite3/libsqlite/sqlite3.c pCsr->aPage[0].zPath = z = sqlite3_mprintf("/"); pCsr 155666 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPage = 0; pCsr 155669 ext/sqlite3/libsqlite/sqlite3.c pCsr->isEof = 1; pCsr 155670 ext/sqlite3/libsqlite/sqlite3.c return sqlite3_reset(pCsr->pStmt); pCsr 155675 ext/sqlite3/libsqlite/sqlite3.c StatPage *p = &pCsr->aPage[pCsr->iPage]; pCsr 155685 ext/sqlite3/libsqlite/sqlite3.c pCsr->zName = (char *)sqlite3_column_text(pCsr->pStmt, 0); pCsr 155686 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPageno = pCell->aOvfl[pCell->iOvfl]; pCsr 155687 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPagetype = "overflow"; pCsr 155688 ext/sqlite3/libsqlite/sqlite3.c pCsr->nCell = 0; pCsr 155689 ext/sqlite3/libsqlite/sqlite3.c pCsr->nMxPayload = 0; pCsr 155690 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPath = z = sqlite3_mprintf( pCsr 155694 ext/sqlite3/libsqlite/sqlite3.c pCsr->nUnused = 0; pCsr 155695 ext/sqlite3/libsqlite/sqlite3.c pCsr->nPayload = nUsable - 4; pCsr 155697 ext/sqlite3/libsqlite/sqlite3.c pCsr->nPayload = pCell->nLastOvfl; pCsr 155698 ext/sqlite3/libsqlite/sqlite3.c pCsr->nUnused = nUsable - 4 - pCsr->nPayload; pCsr 155701 ext/sqlite3/libsqlite/sqlite3.c statSizeAndOffset(pCsr); pCsr 155710 ext/sqlite3/libsqlite/sqlite3.c if( pCsr->iPage==0 ) return statNext(pCursor); pCsr 155711 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPage--; pCsr 155714 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPage++; pCsr 155715 ext/sqlite3/libsqlite/sqlite3.c assert( p==&pCsr->aPage[pCsr->iPage-1] ); pCsr 155735 ext/sqlite3/libsqlite/sqlite3.c StatPage *p = &pCsr->aPage[pCsr->iPage]; pCsr 155736 ext/sqlite3/libsqlite/sqlite3.c pCsr->zName = (char *)sqlite3_column_text(pCsr->pStmt, 0); pCsr 155737 ext/sqlite3/libsqlite/sqlite3.c pCsr->iPageno = p->iPgno; pCsr 155741 ext/sqlite3/libsqlite/sqlite3.c statSizeAndOffset(pCsr); pCsr 155746 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPagetype = "internal"; pCsr 155750 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPagetype = "leaf"; pCsr 155753 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPagetype = "corrupted"; pCsr 155756 ext/sqlite3/libsqlite/sqlite3.c pCsr->nCell = p->nCell; pCsr 155757 ext/sqlite3/libsqlite/sqlite3.c pCsr->nUnused = p->nUnused; pCsr 155758 ext/sqlite3/libsqlite/sqlite3.c pCsr->nMxPayload = p->nMxPayload; pCsr 155759 ext/sqlite3/libsqlite/sqlite3.c pCsr->zPath = z = sqlite3_mprintf("%s", p->zPath); pCsr 155765 ext/sqlite3/libsqlite/sqlite3.c pCsr->nPayload = nPayload; pCsr 155773 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155774 ext/sqlite3/libsqlite/sqlite3.c return pCsr->isEof; pCsr 155782 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155784 ext/sqlite3/libsqlite/sqlite3.c statResetCsr(pCsr); pCsr 155793 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155796 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_text(ctx, pCsr->zName, -1, SQLITE_TRANSIENT); pCsr 155799 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_text(ctx, pCsr->zPath, -1, SQLITE_TRANSIENT); pCsr 155802 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int64(ctx, pCsr->iPageno); pCsr 155805 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_text(ctx, pCsr->zPagetype, -1, SQLITE_STATIC); pCsr 155808 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(ctx, pCsr->nCell); pCsr 155811 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(ctx, pCsr->nPayload); pCsr 155814 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(ctx, pCsr->nUnused); pCsr 155817 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(ctx, pCsr->nMxPayload); pCsr 155820 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int64(ctx, pCsr->iOffset); pCsr 155824 ext/sqlite3/libsqlite/sqlite3.c sqlite3_result_int(ctx, pCsr->szPage); pCsr 155831 ext/sqlite3/libsqlite/sqlite3.c StatCursor *pCsr = (StatCursor *)pCursor; pCsr 155832 ext/sqlite3/libsqlite/sqlite3.c *pRowid = pCsr->iPageno;