Lines Matching refs:pReader

78238   PmaReader *pReader;             /* Readr data from here after Rewind() */
79137 assert( pSorter->bUseThreads || pSorter->pReader==0 );
79139 if( pSorter->pReader ){
79140 vdbePmaReaderClear(pSorter->pReader);
79141 sqlite3DbFree(db, pSorter->pReader);
79142 pSorter->pReader = 0;
79788 PmaReader *pReader = &pMerger->aReadr[ pMerger->aTree[1] ];
79789 int nKey = pReader->nKey;
79794 if( pReader->pFd==0 ) break;
79799 vdbePmaWriteBlob(&writer, pReader->aKey, nKey);
80146 PmaReader *pReader = (PmaReader*)pCtx;
80148 vdbePmaReaderIncrMergeInit(pReader,INCRINIT_TASK)
80150 pReader->pIncr->pTask->bDone = 1;
80412 pSorter->pReader = pReadr;
80503 assert( pSorter->pReader==0 );
80520 assert( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0) );
80522 assert( pSorter->pReader==0 || pSorter->pMerger==0 );
80523 assert( pSorter->bUseThreads==0 || pSorter->pReader );
80527 rc = vdbePmaReaderNext(pSorter->pReader);
80528 *pbEof = (pSorter->pReader->pFd==0);
80557 PmaReader *pReader;
80560 pReader = pSorter->pReader;
80564 pReader = &pSorter->pMerger->aReadr[pSorter->pMerger->aTree[1]];
80566 *pnKey = pReader->nKey;
80567 pKey = pReader->aKey;
144235 static int fts3SegReaderIncrRead(Fts3SegReader *pReader){
144239 nRead = MIN(pReader->nNode - pReader->nPopulate, FTS3_NODE_CHUNKSIZE);
144241 pReader->pBlob,
144242 &pReader->aNode[pReader->nPopulate],
144244 pReader->nPopulate
144248 pReader->nPopulate += nRead;
144249 memset(&pReader->aNode[pReader->nPopulate], 0, FTS3_NODE_PADDING);
144250 if( pReader->nPopulate==pReader->nNode ){
144251 sqlite3_blob_close(pReader->pBlob);
144252 pReader->pBlob = 0;
144253 pReader->nPopulate = 0;
144259 static int fts3SegReaderRequire(Fts3SegReader *pReader, char *pFrom, int nByte){
144261 assert( !pReader->pBlob
144262 || (pFrom>=pReader->aNode && pFrom<&pReader->aNode[pReader->nNode])
144264 while( pReader->pBlob && rc==SQLITE_OK
144265 && (pFrom - pReader->aNode + nByte)>pReader->nPopulate
144267 rc = fts3SegReaderIncrRead(pReader);
144291 Fts3SegReader *pReader,
144299 if( !pReader->aDoclist ){
144300 pNext = pReader->aNode;
144302 pNext = &pReader->aDoclist[pReader->nDoclist];
144305 if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){
144307 if( fts3SegReaderIsPending(pReader) ){
144308 Fts3HashElem *pElem = *(pReader->ppNextElem);
144310 pReader->aNode = 0;
144313 pReader->zTerm = (char *)fts3HashKey(pElem);
144314 pReader->nTerm = fts3HashKeysize(pElem);
144315 pReader->nNode = pReader->nDoclist = pList->nData + 1;
144316 pReader->aNode = pReader->aDoclist = pList->aData;
144317 pReader->ppNextElem++;
144318 assert( pReader->aNode );
144323 fts3SegReaderSetEof(pReader);
144327 assert( pReader->iCurrentBlock<=pReader->iLeafEndBlock );
144328 if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){
144333 p, ++pReader->iCurrentBlock, &pReader->aNode, &pReader->nNode,
144334 (bIncr ? &pReader->nPopulate : 0)
144337 assert( pReader->pBlob==0 );
144338 if( bIncr && pReader->nPopulate<pReader->nNode ){
144339 pReader->pBlob = p->pSegments;
144342 pNext = pReader->aNode;
144345 assert( !fts3SegReaderIsPending(pReader) );
144347 rc = fts3SegReaderRequire(pReader, pNext, FTS3_VARINT_MAX*2);
144355 || &pNext[nSuffix]>&pReader->aNode[pReader->nNode]
144360 if( nPrefix+nSuffix>pReader->nTermAlloc ){
144362 char *zNew = sqlite3_realloc(pReader->zTerm, nNew);
144366 pReader->zTerm = zNew;
144367 pReader->nTermAlloc = nNew;
144370 rc = fts3SegReaderRequire(pReader, pNext, nSuffix+FTS3_VARINT_MAX);
144373 memcpy(&pReader->zTerm[nPrefix], pNext, nSuffix);
144374 pReader->nTerm = nPrefix+nSuffix;
144376 pNext += fts3GetVarint32(pNext, &pReader->nDoclist);
144377 pReader->aDoclist = pNext;
144378 pReader->pOffsetList = 0;
144384 if( &pReader->aDoclist[pReader->nDoclist]>&pReader->aNode[pReader->nNode]
144385 || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
144396 static int fts3SegReaderFirstDocid(Fts3Table *pTab, Fts3SegReader *pReader){
144398 assert( pReader->aDoclist );
144399 assert( !pReader->pOffsetList );
144400 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
144402 pReader->iDocid = 0;
144403 pReader->nOffsetList = 0;
144405 pReader->aDoclist, pReader->nDoclist, &pReader->pOffsetList,
144406 &pReader->iDocid, &pReader->nOffsetList, &bEof
144409 rc = fts3SegReaderRequire(pReader, pReader->aDoclist, FTS3_VARINT_MAX);
144411 int n = sqlite3Fts3GetVarint(pReader->aDoclist, &pReader->iDocid);
144412 pReader->pOffsetList = &pReader->aDoclist[n];
144430 Fts3SegReader *pReader, /* Reader to advance to next docid */
144435 char *p = pReader->pOffsetList;
144440 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
144446 *ppOffsetList = pReader->pOffsetList;
144447 *pnOffsetList = pReader->nOffsetList - 1;
144450 pReader->aDoclist, pReader->nDoclist, &p, &pReader->iDocid,
144451 &pReader->nOffsetList, &bEof
144454 pReader->pOffsetList = 0;
144456 pReader->pOffsetList = p;
144459 char *pEnd = &pReader->aDoclist[pReader->nDoclist];
144475 if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;
144476 rc = fts3SegReaderIncrRead(pReader);
144485 *ppOffsetList = pReader->pOffsetList;
144486 *pnOffsetList = (int)(p - pReader->pOffsetList - 1);
144498 pReader->pOffsetList = 0;
144500 rc = fts3SegReaderRequire(pReader, p, FTS3_VARINT_MAX);
144503 pReader->pOffsetList = p + sqlite3Fts3GetVarint(p, &iDelta);
144505 pReader->iDocid -= iDelta;
144507 pReader->iDocid += iDelta;
144532 Fts3SegReader *pReader = pMsr->apSegment[ii];
144533 if( !fts3SegReaderIsPending(pReader)
144534 && !fts3SegReaderIsRootOnly(pReader)
144537 for(jj=pReader->iStartBlock; jj<=pReader->iLeafEndBlock; jj++){
144555 SQLITE_PRIVATE void sqlite3Fts3SegReaderFree(Fts3SegReader *pReader){
144556 if( pReader && !fts3SegReaderIsPending(pReader) ){
144557 sqlite3_free(pReader->zTerm);
144558 if( !fts3SegReaderIsRootOnly(pReader) ){
144559 sqlite3_free(pReader->aNode);
144560 sqlite3_blob_close(pReader->pBlob);
144563 sqlite3_free(pReader);
144579 Fts3SegReader *pReader; /* Newly allocated SegReader object */
144587 pReader = (Fts3SegReader *)sqlite3_malloc(sizeof(Fts3SegReader) + nExtra);
144588 if( !pReader ){
144591 memset(pReader, 0, sizeof(Fts3SegReader));
144592 pReader->iIdx = iAge;
144593 pReader->bLookup = bLookup!=0;
144594 pReader->iStartBlock = iStartLeaf;
144595 pReader->iLeafEndBlock = iEndLeaf;
144596 pReader->iEndBlock = iEndBlock;
144600 pReader->aNode = (char *)&pReader[1];
144601 pReader->rootOnly = 1;
144602 pReader->nNode = nRoot;
144603 memcpy(pReader->aNode, zRoot, nRoot);
144604 memset(&pReader->aNode[nRoot], 0, FTS3_NODE_PADDING);
144606 pReader->iCurrentBlock = iStartLeaf-1;
144608 *ppReader = pReader;
144661 Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */
144719 pReader = (Fts3SegReader *)sqlite3_malloc(nByte);
144720 if( !pReader ){
144723 memset(pReader, 0, nByte);
144724 pReader->iIdx = 0x7FFFFFFF;
144725 pReader->ppNextElem = (Fts3HashElem **)&pReader[1];
144726 memcpy(pReader->ppNextElem, aElem, nElem*sizeof(Fts3HashElem *));
144733 *ppReader = pReader;