Lines Matching refs:pReader

78220   PmaReader *pReader;             /* Readr data from here after Rewind() */
79119 assert( pSorter->bUseThreads || pSorter->pReader==0 );
79121 if( pSorter->pReader ){
79122 vdbePmaReaderClear(pSorter->pReader);
79123 sqlite3DbFree(db, pSorter->pReader);
79124 pSorter->pReader = 0;
79770 PmaReader *pReader = &pMerger->aReadr[ pMerger->aTree[1] ];
79771 int nKey = pReader->nKey;
79776 if( pReader->pFd==0 ) break;
79781 vdbePmaWriteBlob(&writer, pReader->aKey, nKey);
80128 PmaReader *pReader = (PmaReader*)pCtx;
80130 vdbePmaReaderIncrMergeInit(pReader,INCRINIT_TASK)
80132 pReader->pIncr->pTask->bDone = 1;
80394 pSorter->pReader = pReadr;
80485 assert( pSorter->pReader==0 );
80502 assert( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0) );
80504 assert( pSorter->pReader==0 || pSorter->pMerger==0 );
80505 assert( pSorter->bUseThreads==0 || pSorter->pReader );
80509 rc = vdbePmaReaderNext(pSorter->pReader);
80510 *pbEof = (pSorter->pReader->pFd==0);
80539 PmaReader *pReader;
80542 pReader = pSorter->pReader;
80546 pReader = &pSorter->pMerger->aReadr[pSorter->pMerger->aTree[1]];
80548 *pnKey = pReader->nKey;
80549 pKey = pReader->aKey;
144205 static int fts3SegReaderIncrRead(Fts3SegReader *pReader){
144209 nRead = MIN(pReader->nNode - pReader->nPopulate, FTS3_NODE_CHUNKSIZE);
144211 pReader->pBlob,
144212 &pReader->aNode[pReader->nPopulate],
144214 pReader->nPopulate
144218 pReader->nPopulate += nRead;
144219 memset(&pReader->aNode[pReader->nPopulate], 0, FTS3_NODE_PADDING);
144220 if( pReader->nPopulate==pReader->nNode ){
144221 sqlite3_blob_close(pReader->pBlob);
144222 pReader->pBlob = 0;
144223 pReader->nPopulate = 0;
144229 static int fts3SegReaderRequire(Fts3SegReader *pReader, char *pFrom, int nByte){
144231 assert( !pReader->pBlob
144232 || (pFrom>=pReader->aNode && pFrom<&pReader->aNode[pReader->nNode])
144234 while( pReader->pBlob && rc==SQLITE_OK
144235 && (pFrom - pReader->aNode + nByte)>pReader->nPopulate
144237 rc = fts3SegReaderIncrRead(pReader);
144261 Fts3SegReader *pReader,
144269 if( !pReader->aDoclist ){
144270 pNext = pReader->aNode;
144272 pNext = &pReader->aDoclist[pReader->nDoclist];
144275 if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){
144277 if( fts3SegReaderIsPending(pReader) ){
144278 Fts3HashElem *pElem = *(pReader->ppNextElem);
144280 pReader->aNode = 0;
144283 pReader->zTerm = (char *)fts3HashKey(pElem);
144284 pReader->nTerm = fts3HashKeysize(pElem);
144285 pReader->nNode = pReader->nDoclist = pList->nData + 1;
144286 pReader->aNode = pReader->aDoclist = pList->aData;
144287 pReader->ppNextElem++;
144288 assert( pReader->aNode );
144293 fts3SegReaderSetEof(pReader);
144297 assert( pReader->iCurrentBlock<=pReader->iLeafEndBlock );
144298 if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){
144303 p, ++pReader->iCurrentBlock, &pReader->aNode, &pReader->nNode,
144304 (bIncr ? &pReader->nPopulate : 0)
144307 assert( pReader->pBlob==0 );
144308 if( bIncr && pReader->nPopulate<pReader->nNode ){
144309 pReader->pBlob = p->pSegments;
144312 pNext = pReader->aNode;
144315 assert( !fts3SegReaderIsPending(pReader) );
144317 rc = fts3SegReaderRequire(pReader, pNext, FTS3_VARINT_MAX*2);
144325 || &pNext[nSuffix]>&pReader->aNode[pReader->nNode]
144330 if( nPrefix+nSuffix>pReader->nTermAlloc ){
144332 char *zNew = sqlite3_realloc(pReader->zTerm, nNew);
144336 pReader->zTerm = zNew;
144337 pReader->nTermAlloc = nNew;
144340 rc = fts3SegReaderRequire(pReader, pNext, nSuffix+FTS3_VARINT_MAX);
144343 memcpy(&pReader->zTerm[nPrefix], pNext, nSuffix);
144344 pReader->nTerm = nPrefix+nSuffix;
144346 pNext += fts3GetVarint32(pNext, &pReader->nDoclist);
144347 pReader->aDoclist = pNext;
144348 pReader->pOffsetList = 0;
144354 if( &pReader->aDoclist[pReader->nDoclist]>&pReader->aNode[pReader->nNode]
144355 || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
144366 static int fts3SegReaderFirstDocid(Fts3Table *pTab, Fts3SegReader *pReader){
144368 assert( pReader->aDoclist );
144369 assert( !pReader->pOffsetList );
144370 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
144372 pReader->iDocid = 0;
144373 pReader->nOffsetList = 0;
144375 pReader->aDoclist, pReader->nDoclist, &pReader->pOffsetList,
144376 &pReader->iDocid, &pReader->nOffsetList, &bEof
144379 rc = fts3SegReaderRequire(pReader, pReader->aDoclist, FTS3_VARINT_MAX);
144381 int n = sqlite3Fts3GetVarint(pReader->aDoclist, &pReader->iDocid);
144382 pReader->pOffsetList = &pReader->aDoclist[n];
144400 Fts3SegReader *pReader, /* Reader to advance to next docid */
144405 char *p = pReader->pOffsetList;
144410 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
144416 *ppOffsetList = pReader->pOffsetList;
144417 *pnOffsetList = pReader->nOffsetList - 1;
144420 pReader->aDoclist, pReader->nDoclist, &p, &pReader->iDocid,
144421 &pReader->nOffsetList, &bEof
144424 pReader->pOffsetList = 0;
144426 pReader->pOffsetList = p;
144429 char *pEnd = &pReader->aDoclist[pReader->nDoclist];
144445 if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;
144446 rc = fts3SegReaderIncrRead(pReader);
144455 *ppOffsetList = pReader->pOffsetList;
144456 *pnOffsetList = (int)(p - pReader->pOffsetList - 1);
144468 pReader->pOffsetList = 0;
144470 rc = fts3SegReaderRequire(pReader, p, FTS3_VARINT_MAX);
144473 pReader->pOffsetList = p + sqlite3Fts3GetVarint(p, &iDelta);
144475 pReader->iDocid -= iDelta;
144477 pReader->iDocid += iDelta;
144502 Fts3SegReader *pReader = pMsr->apSegment[ii];
144503 if( !fts3SegReaderIsPending(pReader)
144504 && !fts3SegReaderIsRootOnly(pReader)
144507 for(jj=pReader->iStartBlock; jj<=pReader->iLeafEndBlock; jj++){
144525 SQLITE_PRIVATE void sqlite3Fts3SegReaderFree(Fts3SegReader *pReader){
144526 if( pReader && !fts3SegReaderIsPending(pReader) ){
144527 sqlite3_free(pReader->zTerm);
144528 if( !fts3SegReaderIsRootOnly(pReader) ){
144529 sqlite3_free(pReader->aNode);
144530 sqlite3_blob_close(pReader->pBlob);
144533 sqlite3_free(pReader);
144549 Fts3SegReader *pReader; /* Newly allocated SegReader object */
144557 pReader = (Fts3SegReader *)sqlite3_malloc(sizeof(Fts3SegReader) + nExtra);
144558 if( !pReader ){
144561 memset(pReader, 0, sizeof(Fts3SegReader));
144562 pReader->iIdx = iAge;
144563 pReader->bLookup = bLookup!=0;
144564 pReader->iStartBlock = iStartLeaf;
144565 pReader->iLeafEndBlock = iEndLeaf;
144566 pReader->iEndBlock = iEndBlock;
144570 pReader->aNode = (char *)&pReader[1];
144571 pReader->rootOnly = 1;
144572 pReader->nNode = nRoot;
144573 memcpy(pReader->aNode, zRoot, nRoot);
144574 memset(&pReader->aNode[nRoot], 0, FTS3_NODE_PADDING);
144576 pReader->iCurrentBlock = iStartLeaf-1;
144578 *ppReader = pReader;
144631 Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */
144689 pReader = (Fts3SegReader *)sqlite3_malloc(nByte);
144690 if( !pReader ){
144693 memset(pReader, 0, nByte);
144694 pReader->iIdx = 0x7FFFFFFF;
144695 pReader->ppNextElem = (Fts3HashElem **)&pReader[1];
144696 memcpy(pReader->ppNextElem, aElem, nElem*sizeof(Fts3HashElem *));
144703 *ppReader = pReader;