Lines Matching refs:pSeg
138692 Fts3SegReader *pSeg = 0;
138693 rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);
138694 if( rc==SQLITE_OK && pSeg ){
138695 rc = fts3SegReaderCursorAppend(pCsr, pSeg);
138705 Fts3SegReader *pSeg = 0;
138726 iEndBlock, zRoot, nRoot, &pSeg
138729 rc = fts3SegReaderCursorAppend(pCsr, pSeg);
147178 static void fts3SegReaderSetEof(Fts3SegReader *pSeg){
147179 if( !fts3SegReaderIsRootOnly(pSeg) ){
147180 sqlite3_free(pSeg->aNode);
147181 sqlite3_blob_close(pSeg->pBlob);
147182 pSeg->pBlob = 0;
147184 pSeg->aNode = 0;
147726 Fts3SegReader *pSeg, /* Segment reader object */
147731 if( pSeg->aNode ){
147732 if( pSeg->nTerm>nTerm ){
147733 res = memcmp(pSeg->zTerm, zTerm, nTerm);
147735 res = memcmp(pSeg->zTerm, zTerm, pSeg->nTerm);
147738 res = pSeg->nTerm-nTerm;
148376 Fts3SegReader *pSeg /* Segment to delete */
148379 if( pSeg->iStartBlock ){
148383 sqlite3_bind_int64(pDelete, 1, pSeg->iStartBlock);
148384 sqlite3_bind_int64(pDelete, 2, pSeg->iEndBlock);
148544 Fts3SegReader *pSeg;
148545 pSeg = pMsr->apSegment[0];
148547 if( pSeg->pOffsetList==0 ){
148610 Fts3SegReader *pSeg = pCsr->apSegment[i];
148612 int rc = fts3SegReaderNext(p, pSeg, 0);
148614 }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );
148616 if( pSeg->bLookup && res!=0 ){
148617 fts3SegReaderSetEof(pSeg);
148657 Fts3SegReader *pSeg = pCsr->apSegment[i];
148658 if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){
148739 Fts3SegReader *pSeg = apSegment[i];
148740 if( pSeg->bLookup ){
148741 fts3SegReaderSetEof(pSeg);
148743 rc = fts3SegReaderNext(p, pSeg, 0);
150548 Fts3SegReader *pSeg = 0;
150554 pSeg = pCsr->apSegment[j];
150555 if( pSeg->iIdx==i ) break;
150557 assert( j<pCsr->nSegment && pSeg->iIdx==i );
150559 if( pSeg->aNode==0 ){
150561 rc = fts3DeleteSegment(p, pSeg);
150563 rc = fts3RemoveSegdirEntry(p, iAbsLevel, pSeg->iIdx);
150570 const char *zTerm = pSeg->zTerm;
150571 int nTerm = pSeg->nTerm;
150572 rc = fts3TruncateSegment(p, iAbsLevel, pSeg->iIdx, zTerm, nTerm);
172923 Fts5StructureSegment *pSeg; /* Segment to iterate through */
173542 static int fts5SegmentSize(Fts5StructureSegment *pSeg){
173543 return 1 + pSeg->pgnoLast - pSeg->pgnoFirst;
173603 Fts5StructureSegment *pSeg; /* Segment just written */
173608 pSeg = &pStruct->aLevel[iLvl].aSeg[pStruct->aLevel[iLvl].nSeg-1];
173609 szSeg = (1 + pSeg->pgnoLast - pSeg->pgnoFirst);
173899 Fts5StructureSegment *pSeg = pIter->pSeg;
173905 }else if( pIter->iLeafPgno<=pSeg->pgnoLast ){
173907 FTS5_SEGMENT_ROWID(pSeg->iSegid, pIter->iLeafPgno)
174032 Fts5StructureSegment *pSeg, /* Description of segment */
174035 if( pSeg->pgnoFirst==0 ){
174047 pIter->pSeg = pSeg;
174048 pIter->iLeafPgno = pSeg->pgnoFirst-1;
174130 pIter->pSeg->iSegid, pIter->iLeafPgno
174172 Fts5SegIter *pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst];
174173 return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0);
174238 }else if( pIter->pSeg==0 ){
174324 int iSegid = pIter->pSeg->iSegid;
174340 Fts5StructureSegment *pSeg = pIter->pSeg;
174344 for(pgno=pIter->iLeafPgno+1; !p->rc && pgno<=pSeg->pgnoLast; pgno++){
174345 i64 iAbs = FTS5_SEGMENT_ROWID(pSeg->iSegid, pgno);
174398 int iSeg = pIter->pSeg->iSegid;
174559 Fts5StructureSegment *pSeg, /* Description of segment */
174572 pIter->pSeg = pSeg;
174585 sqlite3_bind_int(p->pIdxSelect, 1, pSeg->iSegid);
174594 if( iPg<pSeg->pgnoFirst ){
174595 iPg = pSeg->pgnoFirst;
174857 if( iLeafPgno>pIter->pSeg->pgnoLast ){
175023 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
175024 pIter->bEof = pSeg->pLeaf==0;
175025 pIter->iSwitchRowid = pSeg->iRowid;
175046 Fts5SegIter *pSeg = &pIter->aSeg[iFirst];
175048 if( bUseFrom && pSeg->pDlidx ){
175049 fts5SegIterNextFrom(p, pSeg, iFrom);
175051 fts5SegIterNext(p, pSeg, &bNewTerm);
175054 if( pSeg->pLeaf==0 || bNewTerm
175145 Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg];
175148 fts5SegIterInit(p, pSeg, pIter);
175150 fts5SegIterSeekInit(p, &buf, pTerm, nTerm, flags, pSeg, pIter);
175278 Fts5SegIter *pSeg, /* Poslist of this iterator */
175282 int nRem = pSeg->nPos; /* Number of bytes still to come */
175284 u8 *pChunk = &pSeg->pLeaf->p[pSeg->iLeafOffset];
175285 int nChunk = MIN(nRem, pSeg->pLeaf->szLeaf - pSeg->iLeafOffset);
175286 int pgno = pSeg->iLeafPgno;
175289 if( (pSeg->flags & FTS5_SEGITER_REVERSE)==0 ){
175301 pData = fts5DataRead(p, FTS5_SEGMENT_ROWID(pSeg->pSeg->iSegid, pgno));
175306 assert( pSeg->pNextLeaf==0 );
175307 pSeg->pNextLeaf = pData;
175854 Fts5SegIter *pSeg = &pIter->aSeg[i];
175855 if( pSeg->pSeg==0 ){
175857 }else if( pSeg->pLeaf==0 ){
175861 pSeg->pSeg->pgnoLast = 0;
175862 pSeg->pSeg->pgnoFirst = 0;
175864 int iOff = pSeg->iTermLeafOffset; /* Offset on new first leaf page */
175867 int iId = pSeg->pSeg->iSegid;
175870 iLeafRowid = FTS5_SEGMENT_ROWID(iId, pSeg->iTermLeafPgno);
175876 fts5BufferAppendVarint(&p->rc, &buf, pSeg->term.n);
175877 fts5BufferAppendBlob(&p->rc, &buf, pSeg->term.n, pSeg->term.p);
175886 if( pSeg->iLeafPgno==pSeg->iTermLeafPgno
175887 && pSeg->iEndofDoclist<pData->szLeaf
175889 int nDiff = pData->szLeaf - pSeg->iEndofDoclist;
175892 pData->nn - pSeg->iPgidxOff, &pData->p[pSeg->iPgidxOff]
175897 pSeg->pSeg->pgnoFirst = pSeg->iTermLeafPgno;
175931 Fts5StructureSegment *pSeg; /* Output segment */
175944 pSeg = &pLvlOut->aSeg[pLvlOut->nSeg-1];
175946 fts5WriteInit(p, &writer, pSeg->iSegid);
175947 writer.writer.pgno = pSeg->pgnoLast+1;
175966 pSeg = &pLvlOut->aSeg[pLvlOut->nSeg];
175968 pSeg->pgnoFirst = 1;
175969 pSeg->iSegid = iSegid;
176012 fts5WriteFinish(p, &writer, &pSeg->pgnoLast);
176030 if( pSeg->pgnoLast==0 ){
176035 assert( pSeg->pgnoLast>0 );
176207 Fts5StructureSegment *pSeg; /* New segment within pStruct */
176313 pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ];
176314 pSeg->iSegid = iSegid;
176315 pSeg->pgnoFirst = 1;
176316 pSeg->pgnoLast = pgnoLast;
176499 Fts5SegIter *pSeg,
176503 if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos) ){
176505 fts5ChunkIterate(p, pSeg, (void*)pBuf, fts5PoslistCallback);
176512 fts5ChunkIterate(p, pSeg, (void*)&sCtx, fts5PoslistFilterCallback);
176577 Fts5SegIter *pSeg = &pMulti->aSeg[ pMulti->aFirst[1].iFirst ];
176579 assert( pSeg->nPos>0 );
176580 if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos+9+9) ){
176591 fts5BufferSafeAppendVarint(pBuf, pSeg->nPos*2);
176594 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf
176597 const u8 *pPos = &pSeg->pLeaf->p[pSeg->iLeafOffset];
176600 nPos = fts5IndexExtractCol(&pPos, pSeg->nPos, pColset->aiCol[0]);
176602 nPos = pSeg->nPos;
176606 fts5SegiterPoslist(p, pSeg, pColset, pBuf);
176611 if( nActual!=pSeg->nPos ){
177147 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
177148 if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){
177149 fts5DataRelease(pSeg->pLeaf);
177150 pSeg->pLeaf = 0;
177221 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
177223 *piRowid = pSeg->iRowid;
177224 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){
177225 u8 *pPos = &pSeg->pLeaf->p[pSeg->iLeafOffset];
177227 *pn = pSeg->nPos;
177231 *pn = fts5IndexExtractCol(pp, pSeg->nPos, pColset->aiCol[0]);
177234 fts5IndexExtractColset(pColset, pPos, pSeg->nPos, &pIter->poslist);
177240 fts5SegiterPoslist(pIter->pIndex, pSeg, pColset, &pIter->poslist);
177254 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
177257 fts5SegiterPoslist(p, pSeg, 0, pBuf);
177541 Fts5StructureSegment *pSeg, /* Segment to check internal consistency */
177551 Fts5Data *pLeaf = fts5DataRead(p, FTS5_SEGMENT_ROWID(pSeg->iSegid, i));
177612 Fts5StructureSegment *pSeg /* Segment to check internal consistency */
177617 int iIdxPrevLeaf = pSeg->pgnoFirst-1;
177618 int iDlidxPrevLeaf = pSeg->pgnoLast;
177620 if( pSeg->pgnoFirst==0 ) return;
177624 pConfig->zDb, pConfig->zName, pSeg->iSegid
177639 if( iIdxLeaf<pSeg->pgnoFirst ) continue;
177640 iRow = FTS5_SEGMENT_ROWID(pSeg->iSegid, iIdxLeaf);
177676 p, pSeg, iIdxPrevLeaf+1, iDlidxPrevLeaf+1, iIdxLeaf-1
177684 int iSegid = pSeg->iSegid;
177726 iDlidxPrevLeaf = pSeg->pgnoLast;
177738 if( p->rc==SQLITE_OK && iter.iLeaf!=pSeg->pgnoLast ){
177773 Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg];
177774 fts5IndexIntegrityCheckSegment(p, pSeg);
177912 Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg];
177914 pSeg->iSegid, pSeg->pgnoFirst, pSeg->pgnoLast