Lines Matching refs:pReader
106693 PmaReader *pReader; /* Readr data from here after Rewind() */ member
107620 assert( pSorter->bUseThreads || pSorter->pReader==0 );
107622 if( pSorter->pReader ){
107623 vdbePmaReaderClear(pSorter->pReader);
107624 sqlite3DbFree(db, pSorter->pReader);
107625 pSorter->pReader = 0;
108294 PmaReader *pReader = &pMerger->aReadr[ pMerger->aTree[1] ]; local
108295 int nKey = pReader->nKey;
108300 if( pReader->pFd==0 ) break;
108305 vdbePmaWriteBlob(&writer, pReader->aKey, nKey);
108658 PmaReader *pReader = (PmaReader*)pCtx; local
108660 vdbePmaReaderIncrMergeInit(pReader,INCRINIT_TASK)
108662 pReader->pIncr->pTask->bDone = 1;
108924 pSorter->pReader = pReadr;
109017 assert( pSorter->pReader==0 );
109040 assert( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0) );
109042 assert( pSorter->pReader==0 || pSorter->pMerger==0 );
109043 assert( pSorter->bUseThreads==0 || pSorter->pReader );
109047 rc = vdbePmaReaderNext(pSorter->pReader);
109048 if( rc==SQLITE_OK && pSorter->pReader->pFd==0 ) rc = SQLITE_DONE;
109078 PmaReader *pReader; local
109081 pReader = pSorter->pReader;
109085 pReader = &pSorter->pMerger->aReadr[pSorter->pMerger->aTree[1]];
109087 *pnKey = pReader->nKey;
109088 pKey = pReader->aKey;
205265 static int fts3SegReaderIncrRead(Fts3SegReader *pReader){ argument
205269 nRead = MIN(pReader->nNode - pReader->nPopulate, FTS3_NODE_CHUNKSIZE);
205271 pReader->pBlob,
205272 &pReader->aNode[pReader->nPopulate],
205274 pReader->nPopulate
205278 pReader->nPopulate += nRead;
205279 memset(&pReader->aNode[pReader->nPopulate], 0, FTS3_NODE_PADDING);
205280 if( pReader->nPopulate==pReader->nNode ){
205281 sqlite3_blob_close(pReader->pBlob);
205282 pReader->pBlob = 0;
205283 pReader->nPopulate = 0;
205289 static int fts3SegReaderRequire(Fts3SegReader *pReader, char *pFrom, int nByte){ argument
205291 assert( !pReader->pBlob
205292 || (pFrom>=pReader->aNode && pFrom<&pReader->aNode[pReader->nNode])
205294 while( pReader->pBlob && rc==SQLITE_OK
205295 && (pFrom - pReader->aNode + nByte)>pReader->nPopulate
205297 rc = fts3SegReaderIncrRead(pReader);
205321 Fts3SegReader *pReader, argument
205329 if( !pReader->aDoclist ){
205330 pNext = pReader->aNode;
205332 pNext = &pReader->aDoclist[pReader->nDoclist];
205335 if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){
205337 if( fts3SegReaderIsPending(pReader) ){
205338 Fts3HashElem *pElem = *(pReader->ppNextElem);
205339 sqlite3_free(pReader->aNode);
205340 pReader->aNode = 0;
205347 if( (nTerm+1)>pReader->nTermAlloc ){
205348 sqlite3_free(pReader->zTerm);
205349 pReader->zTerm = (char*)sqlite3_malloc64(((i64)nTerm+1)*2);
205350 if( !pReader->zTerm ) return SQLITE_NOMEM;
205351 pReader->nTermAlloc = (nTerm+1)*2;
205353 memcpy(pReader->zTerm, fts3HashKey(pElem), nTerm);
205354 pReader->zTerm[nTerm] = '\0';
205355 pReader->nTerm = nTerm;
205360 pReader->nNode = pReader->nDoclist = nCopy;
205361 pReader->aNode = pReader->aDoclist = aCopy;
205362 pReader->ppNextElem++;
205363 assert( pReader->aNode );
205368 fts3SegReaderSetEof(pReader);
205373 assert( pReader->iCurrentBlock<=pReader->iLeafEndBlock || CORRUPT_DB );
205375 if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){
205380 p, ++pReader->iCurrentBlock, &pReader->aNode, &pReader->nNode,
205381 (bIncr ? &pReader->nPopulate : 0)
205384 assert( pReader->pBlob==0 );
205385 if( bIncr && pReader->nPopulate<pReader->nNode ){
205386 pReader->pBlob = p->pSegments;
205389 pNext = pReader->aNode;
205392 assert( !fts3SegReaderIsPending(pReader) );
205394 rc = fts3SegReaderRequire(pReader, pNext, FTS3_VARINT_MAX*2);
205402 || (&pReader->aNode[pReader->nNode] - pNext)<nSuffix
205403 || nPrefix>pReader->nTerm
205411 if( (i64)nPrefix+nSuffix>(i64)pReader->nTermAlloc ){
205413 char *zNew = sqlite3_realloc64(pReader->zTerm, nNew);
205417 pReader->zTerm = zNew;
205418 pReader->nTermAlloc = nNew;
205421 rc = fts3SegReaderRequire(pReader, pNext, nSuffix+FTS3_VARINT_MAX);
205424 memcpy(&pReader->zTerm[nPrefix], pNext, nSuffix);
205425 pReader->nTerm = nPrefix+nSuffix;
205427 pNext += fts3GetVarint32(pNext, &pReader->nDoclist);
205428 pReader->aDoclist = pNext;
205429 pReader->pOffsetList = 0;
205435 if( pReader->nDoclist > pReader->nNode-(pReader->aDoclist-pReader->aNode)
205436 || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
205437 || pReader->nDoclist==0
205448 static int fts3SegReaderFirstDocid(Fts3Table *pTab, Fts3SegReader *pReader){ argument
205450 assert( pReader->aDoclist );
205451 assert( !pReader->pOffsetList );
205452 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
205454 pReader->iDocid = 0;
205455 pReader->nOffsetList = 0;
205457 pReader->aDoclist, pReader->nDoclist, &pReader->pOffsetList,
205458 &pReader->iDocid, &pReader->nOffsetList, &bEof
205461 rc = fts3SegReaderRequire(pReader, pReader->aDoclist, FTS3_VARINT_MAX);
205463 int n = sqlite3Fts3GetVarint(pReader->aDoclist, &pReader->iDocid);
205464 pReader->pOffsetList = &pReader->aDoclist[n];
205482 Fts3SegReader *pReader, /* Reader to advance to next docid */ argument
205487 char *p = pReader->pOffsetList;
205492 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
205498 *ppOffsetList = pReader->pOffsetList;
205499 *pnOffsetList = pReader->nOffsetList - 1;
205502 pReader->aDoclist, pReader->nDoclist, &p, &pReader->iDocid,
205503 &pReader->nOffsetList, &bEof
205506 pReader->pOffsetList = 0;
205508 pReader->pOffsetList = p;
205511 char *pEnd = &pReader->aDoclist[pReader->nDoclist];
205527 if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;
205528 rc = fts3SegReaderIncrRead(pReader);
205537 *ppOffsetList = pReader->pOffsetList;
205538 *pnOffsetList = (int)(p - pReader->pOffsetList - 1);
205550 pReader->pOffsetList = 0;
205552 rc = fts3SegReaderRequire(pReader, p, FTS3_VARINT_MAX);
205555 pReader->pOffsetList = p + sqlite3Fts3GetVarintU(p, &iDelta);
205557 pReader->iDocid = (i64)((u64)pReader->iDocid - iDelta);
205559 pReader->iDocid = (i64)((u64)pReader->iDocid + iDelta);
205584 Fts3SegReader *pReader = pMsr->apSegment[ii]; local
205585 if( !fts3SegReaderIsPending(pReader)
205586 && !fts3SegReaderIsRootOnly(pReader)
205589 for(jj=pReader->iStartBlock; jj<=pReader->iLeafEndBlock; jj++){
205607 SQLITE_PRIVATE void sqlite3Fts3SegReaderFree(Fts3SegReader *pReader){ argument
205608 if( pReader ){
205609 sqlite3_free(pReader->zTerm);
205610 if( !fts3SegReaderIsRootOnly(pReader) ){
205611 sqlite3_free(pReader->aNode);
205613 sqlite3_blob_close(pReader->pBlob);
205615 sqlite3_free(pReader);
205631 Fts3SegReader *pReader; /* Newly allocated SegReader object */ local
205644 pReader = (Fts3SegReader *)sqlite3_malloc64(sizeof(Fts3SegReader) + nExtra);
205645 if( !pReader ){
205648 memset(pReader, 0, sizeof(Fts3SegReader));
205649 pReader->iIdx = iAge;
205650 pReader->bLookup = bLookup!=0;
205651 pReader->iStartBlock = iStartLeaf;
205652 pReader->iLeafEndBlock = iEndLeaf;
205653 pReader->iEndBlock = iEndBlock;
205657 pReader->aNode = (char *)&pReader[1];
205658 pReader->rootOnly = 1;
205659 pReader->nNode = nRoot;
205660 if( nRoot ) memcpy(pReader->aNode, zRoot, nRoot);
205661 memset(&pReader->aNode[nRoot], 0, FTS3_NODE_PADDING);
205663 pReader->iCurrentBlock = iStartLeaf-1;
205665 *ppReader = pReader;
205718 Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */ local
205777 pReader = (Fts3SegReader *)sqlite3_malloc64(nByte);
205778 if( !pReader ){
205781 memset(pReader, 0, nByte);
205782 pReader->iIdx = 0x7FFFFFFF;
205783 pReader->ppNextElem = (Fts3HashElem **)&pReader[1];
205784 memcpy(pReader->ppNextElem, aElem, nElem*sizeof(Fts3HashElem *));
205791 *ppReader = pReader;
250452 sqlite3_blob *pReader; /* RO incr-blob open on %_data table */ member
250913 if( p->pReader ){
250915 sqlite3_blob *pReader = p->pReader; local
250916 p->pReader = 0;
250917 rc = sqlite3_blob_close(pReader);
250933 if( p->pReader ){
250937 sqlite3_blob *pBlob = p->pReader;
250938 p->pReader = 0;
250940 assert( p->pReader==0 );
250941 p->pReader = pBlob;
250950 if( p->pReader==0 && rc==SQLITE_OK ){
250953 pConfig->zDb, p->zDataTbl, "block", iRowid, 0, &p->pReader
250966 i64 nByte = sqlite3_blob_bytes(p->pReader);
250978 rc = sqlite3_blob_read(p->pReader, aOut, nByte, 0);
256984 assert( p->pReader==0 );
257256 Fts5PoslistReader *pReader = &pT->aPoslistReader[ii]; local
257257 if( pReader->bEof==0 ){
257258 if( pReader->iPos<iMinPos ){
257259 iMinPos = pReader->iPos;