Lines Matching refs:pSeg
151691 Fts3SegReader *pSeg = 0;
151692 rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);
151693 if( rc==SQLITE_OK && pSeg ){
151694 rc = fts3SegReaderCursorAppend(pCsr, pSeg);
151704 Fts3SegReader *pSeg = 0;
151725 iEndBlock, zRoot, nRoot, &pSeg
151728 rc = fts3SegReaderCursorAppend(pCsr, pSeg);
160210 static void fts3SegReaderSetEof(Fts3SegReader *pSeg){
160211 if( !fts3SegReaderIsRootOnly(pSeg) ){
160212 sqlite3_free(pSeg->aNode);
160213 sqlite3_blob_close(pSeg->pBlob);
160214 pSeg->pBlob = 0;
160216 pSeg->aNode = 0;
160762 Fts3SegReader *pSeg, /* Segment reader object */
160767 if( pSeg->aNode ){
160768 if( pSeg->nTerm>nTerm ){
160769 res = memcmp(pSeg->zTerm, zTerm, nTerm);
160771 res = memcmp(pSeg->zTerm, zTerm, pSeg->nTerm);
160774 res = pSeg->nTerm-nTerm;
161412 Fts3SegReader *pSeg /* Segment to delete */
161415 if( pSeg->iStartBlock ){
161419 sqlite3_bind_int64(pDelete, 1, pSeg->iStartBlock);
161420 sqlite3_bind_int64(pDelete, 2, pSeg->iEndBlock);
161580 Fts3SegReader *pSeg;
161581 pSeg = pMsr->apSegment[0];
161583 if( pSeg->pOffsetList==0 ){
161646 Fts3SegReader *pSeg = pCsr->apSegment[i];
161648 int rc = fts3SegReaderNext(p, pSeg, 0);
161650 }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );
161652 if( pSeg->bLookup && res!=0 ){
161653 fts3SegReaderSetEof(pSeg);
161693 Fts3SegReader *pSeg = pCsr->apSegment[i];
161694 if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){
161775 Fts3SegReader *pSeg = apSegment[i];
161776 if( pSeg->bLookup ){
161777 fts3SegReaderSetEof(pSeg);
161779 rc = fts3SegReaderNext(p, pSeg, 0);
163589 Fts3SegReader *pSeg = 0;
163595 pSeg = pCsr->apSegment[j];
163596 if( pSeg->iIdx==i ) break;
163598 assert( j<pCsr->nSegment && pSeg->iIdx==i );
163600 if( pSeg->aNode==0 ){
163602 rc = fts3DeleteSegment(p, pSeg);
163604 rc = fts3RemoveSegdirEntry(p, iAbsLevel, pSeg->iIdx);
163611 const char *zTerm = pSeg->zTerm;
163612 int nTerm = pSeg->nTerm;
163613 rc = fts3TruncateSegment(p, iAbsLevel, pSeg->iIdx, zTerm, nTerm);
194728 Fts5StructureSegment *pSeg; /* Segment to iterate through */
195464 static int fts5SegmentSize(Fts5StructureSegment *pSeg){
195465 return 1 + pSeg->pgnoLast - pSeg->pgnoFirst;
195525 Fts5StructureSegment *pSeg; /* Segment just written */
195530 pSeg = &pStruct->aLevel[iLvl].aSeg[pStruct->aLevel[iLvl].nSeg-1];
195531 szSeg = (1 + pSeg->pgnoLast - pSeg->pgnoFirst);
195821 Fts5StructureSegment *pSeg = pIter->pSeg;
195827 }else if( pIter->iLeafPgno<=pSeg->pgnoLast ){
195829 FTS5_SEGMENT_ROWID(pSeg->iSegid, pIter->iLeafPgno)
195989 Fts5StructureSegment *pSeg, /* Description of segment */
195992 if( pSeg->pgnoFirst==0 ){
196005 pIter->pSeg = pSeg;
196006 pIter->iLeafPgno = pSeg->pgnoFirst-1;
196098 pIter->pSeg->iSegid, pIter->iLeafPgno
196141 Fts5SegIter *pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst];
196142 return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0);
196199 if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){
196213 if( pIter->pSeg ){
196294 }else if( pIter->pSeg==0 ){
196398 int iSegid = pIter->pSeg->iSegid;
196421 Fts5StructureSegment *pSeg = pIter->pSeg;
196425 for(pgno=pIter->iLeafPgno+1; !p->rc && pgno<=pSeg->pgnoLast; pgno++){
196426 i64 iAbs = FTS5_SEGMENT_ROWID(pSeg->iSegid, pgno);
196479 int iSeg = pIter->pSeg->iSegid;
196658 Fts5StructureSegment *pSeg, /* Description of segment */
196669 pIter->pSeg = pSeg;
196675 sqlite3_bind_int(pIdxSelect, 1, pSeg->iSegid);
196684 if( iPg<pSeg->pgnoFirst ){
196685 iPg = pSeg->pgnoFirst;
196951 if( iLeafPgno>pIter->pSeg->pgnoLast ){
197058 Fts5SegIter *pSeg = &pIter->aSeg[iEq];
197060 pSeg->xNext(p, pSeg, 0);
197120 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
197121 pIter->base.bEof = pSeg->pLeaf==0;
197122 pIter->iSwitchRowid = pSeg->iRowid;
197143 Fts5SegIter *pSeg = &pIter->aSeg[iFirst];
197145 if( bUseFrom && pSeg->pDlidx ){
197146 fts5SegIterNextFrom(p, pSeg, iFrom);
197148 pSeg->xNext(p, pSeg, &bNewTerm);
197151 if( pSeg->pLeaf==0 || bNewTerm
197152 || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)
197156 pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst];
197157 if( pSeg->pLeaf==0 ) return;
197161 assert( pSeg==&pIter->aSeg[pIter->aFirst[1].iFirst] && pSeg->pLeaf );
197162 if( pIter->bSkipEmpty==0 || pSeg->nPos ){
197163 pIter->xSetOutputs(pIter, pSeg);
197180 Fts5SegIter *pSeg = &pIter->aSeg[iFirst];
197184 pSeg->xNext(p, pSeg, &bNewTerm);
197185 if( pSeg->pLeaf==0 || bNewTerm
197186 || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)
197339 Fts5SegIter *pSeg, /* Poslist of this iterator */
197343 int nRem = pSeg->nPos; /* Number of bytes still to come */
197345 u8 *pChunk = &pSeg->pLeaf->p[pSeg->iLeafOffset];
197346 int nChunk = MIN(nRem, pSeg->pLeaf->szLeaf - pSeg->iLeafOffset);
197347 int pgno = pSeg->iLeafPgno;
197353 if( (pSeg->flags & FTS5_SEGITER_REVERSE)==0 ){
197365 pData = fts5LeafRead(p, FTS5_SEGMENT_ROWID(pSeg->pSeg->iSegid, pgno));
197370 assert( pSeg->pNextLeaf==0 );
197371 pSeg->pNextLeaf = pData;
197386 Fts5SegIter *pSeg,
197390 if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos) ){
197392 fts5ChunkIterate(p, pSeg, (void*)pBuf, fts5PoslistCallback);
197400 fts5ChunkIterate(p, pSeg, (void*)&sCtx, fts5PoslistFilterCallback);
197406 fts5ChunkIterate(p, pSeg, (void*)&sCtx, fts5PoslistOffsetsCallback);
197478 static void fts5IterSetOutputs_None(Fts5Iter *pIter, Fts5SegIter *pSeg){
197480 pIter->base.iRowid = pSeg->iRowid;
197481 pIter->base.nData = pSeg->nPos;
197488 static void fts5IterSetOutputs_Nocolset(Fts5Iter *pIter, Fts5SegIter *pSeg){
197489 pIter->base.iRowid = pSeg->iRowid;
197490 pIter->base.nData = pSeg->nPos;
197495 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){
197498 pIter->base.pData = &pSeg->pLeaf->p[pSeg->iLeafOffset];
197504 fts5SegiterPoslist(pIter->pIndex, pSeg, 0, &pIter->poslist);
197513 static void fts5IterSetOutputs_ZeroColset(Fts5Iter *pIter, Fts5SegIter *pSeg){
197514 UNUSED_PARAM(pSeg);
197523 static void fts5IterSetOutputs_Col(Fts5Iter *pIter, Fts5SegIter *pSeg){
197525 fts5SegiterPoslist(pIter->pIndex, pSeg, pIter->pColset, &pIter->poslist);
197526 pIter->base.iRowid = pSeg->iRowid;
197541 static void fts5IterSetOutputs_Col100(Fts5Iter *pIter, Fts5SegIter *pSeg){
197546 if( pSeg->iLeafOffset+pSeg->nPos>pSeg->pLeaf->szLeaf ){
197547 fts5IterSetOutputs_Col(pIter, pSeg);
197549 u8 *a = (u8*)&pSeg->pLeaf->p[pSeg->iLeafOffset];
197550 u8 *pEnd = (u8*)&a[pSeg->nPos];
197558 pIter->base.iRowid = pSeg->iRowid;
197581 static void fts5IterSetOutputs_Full(Fts5Iter *pIter, Fts5SegIter *pSeg){
197583 pIter->base.iRowid = pSeg->iRowid;
197588 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){
197591 const u8 *a = &pSeg->pLeaf->p[pSeg->iLeafOffset];
197593 pIter->base.nData = fts5IndexExtractCol(&a, pSeg->nPos,pColset->aiCol[0]);
197598 fts5IndexExtractColset(pRc, pColset, a, pSeg->nPos, &pIter->poslist);
197607 fts5SegiterPoslist(pIter->pIndex, pSeg, pColset, &pIter->poslist);
197706 Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg];
197709 fts5SegIterInit(p, pSeg, pIter);
197711 fts5SegIterSeekInit(p, pTerm, nTerm, flags, pSeg, pIter);
197732 Fts5SegIter *pSeg = &pNew->aSeg[iEq];
197733 if( p->rc==SQLITE_OK ) pSeg->xNext(p, pSeg, 0);
197743 Fts5SegIter *pSeg = &pNew->aSeg[pNew->aFirst[1].iFirst];
197744 pNew->xSetOutputs(pNew, pSeg);
198409 Fts5SegIter *pSeg = &pIter->aSeg[i];
198410 if( pSeg->pSeg==0 ){
198412 }else if( pSeg->pLeaf==0 ){
198416 pSeg->pSeg->pgnoLast = 0;
198417 pSeg->pSeg->pgnoFirst = 0;
198419 int iOff = pSeg->iTermLeafOffset; /* Offset on new first leaf page */
198422 int iId = pSeg->pSeg->iSegid;
198425 iLeafRowid = FTS5_SEGMENT_ROWID(iId, pSeg->iTermLeafPgno);
198431 fts5BufferAppendVarint(&p->rc, &buf, pSeg->term.n);
198432 fts5BufferAppendBlob(&p->rc, &buf, pSeg->term.n, pSeg->term.p);
198441 if( pSeg->iLeafPgno==pSeg->iTermLeafPgno
198442 && pSeg->iEndofDoclist<pData->szLeaf
198444 int nDiff = pData->szLeaf - pSeg->iEndofDoclist;
198447 pData->nn - pSeg->iPgidxOff, &pData->p[pSeg->iPgidxOff]
198452 pSeg->pSeg->pgnoFirst = pSeg->iTermLeafPgno;
198486 Fts5StructureSegment *pSeg; /* Output segment */
198502 pSeg = &pLvlOut->aSeg[pLvlOut->nSeg-1];
198504 fts5WriteInit(p, &writer, pSeg->iSegid);
198505 writer.writer.pgno = pSeg->pgnoLast+1;
198524 pSeg = &pLvlOut->aSeg[pLvlOut->nSeg];
198526 pSeg->pgnoFirst = 1;
198527 pSeg->iSegid = iSegid;
198584 fts5WriteFinish(p, &writer, &pSeg->pgnoLast);
198602 if( pSeg->pgnoLast==0 ){
198607 assert( pSeg->pgnoLast>0 );
198773 Fts5StructureSegment *pSeg; /* New segment within pStruct */
198892 pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ];
198893 pSeg->iSegid = iSegid;
198894 pSeg->pgnoFirst = 1;
198895 pSeg->pgnoLast = pgnoLast;
199357 Fts5SegIter *pSeg = &p1->aSeg[ p1->aFirst[1].iFirst ];
199358 int nTerm = pSeg->term.n;
199359 const u8 *pTerm = pSeg->term.p;
199360 p1->xSetOutputs(p1, pSeg);
199681 Fts5SegIter *pSeg = &pRet->aSeg[pRet->aFirst[1].iFirst];
199682 if( pSeg->pLeaf ) pRet->xSetOutputs(pRet, pSeg);
199722 Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ];
199723 if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){
199724 fts5DataRelease(pSeg->pLeaf);
199725 pSeg->pLeaf = 0;
200037 Fts5StructureSegment *pSeg, /* Segment to check internal consistency */
200047 Fts5Data *pLeaf = fts5DataRead(p, FTS5_SEGMENT_ROWID(pSeg->iSegid, i));
200108 Fts5StructureSegment *pSeg /* Segment to check internal consistency */
200113 int iIdxPrevLeaf = pSeg->pgnoFirst-1;
200114 int iDlidxPrevLeaf = pSeg->pgnoLast;
200116 if( pSeg->pgnoFirst==0 ) return;
200120 pConfig->zDb, pConfig->zName, pSeg->iSegid
200135 if( iIdxLeaf<pSeg->pgnoFirst ) continue;
200136 iRow = FTS5_SEGMENT_ROWID(pSeg->iSegid, iIdxLeaf);
200171 p, pSeg, iIdxPrevLeaf+1, iDlidxPrevLeaf+1, iIdxLeaf-1
200179 int iSegid = pSeg->iSegid;
200221 iDlidxPrevLeaf = pSeg->pgnoLast;
200233 if( p->rc==SQLITE_OK && iter.iLeaf!=pSeg->pgnoLast ){
200272 Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg];
200273 fts5IndexIntegrityCheckSegment(p, pSeg);
200391 Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg];
200393 pSeg->iSegid, pSeg->pgnoFirst, pSeg->pgnoLast